在 laravel 5 中推荐使用 guzzle 客户端发起带 bearer token 的 http 请求,通过 headers 设置 'authorization' => 'bearer {token}';可从 request()->bearertoken() 获取并透传 token,注意大小写、异常处理与安全配置。

在 Laravel 5 中使用 cURL 发起 HTTP 请求并携带 Bearer Token,核心是设置 Authorization 请求头为 Bearer {token} 格式。Laravel 本身不封装 cURL,通常用原生 curl_init() 或更推荐的 Guzzle HTTP 客户端(Laravel 5.1+ 默认已集成)。
使用 Guzzle(推荐)
Guzzle 是 Laravel 官方推荐的 HTTP 客户端,简洁安全,自动处理 JSON、headers、错误等:
- 确保已安装 Guzzle:
composer require guzzlehttp/guzzle(Laravel 5.5+ 通常已预装) - 在控制器或服务中使用:
$client = new \GuzzleHttp\Client();
$response = $client->get('https://api.example.com/data', [
'headers' => [
'Authorization' => 'Bearer your_access_token_here',
'Accept' => 'application/json',
],
]);
若需 POST 请求并带 JSON 数据:
基于官方 GMGN API 的代币分析工具。通过合约地址查询代币在 SOL/BSC/Base 链上的准确市场数据、安全检测、KOL 分析、开发者分析和 AI 智能分析(叙事/筹码/老鼠仓/机器人)。支持自动识别链。
$response = $client->post('https://api.example.com/submit', [
'headers' => ['Authorization' => 'Bearer your_access_token_here'],
'json' => ['name' => 'John', 'email' => 'john@example.com'],
]);
使用原生 cURL(不推荐,仅作了解)
如必须用原生 cURL,请注意手动设置 header、处理响应和错误:
- 初始化 cURL 句柄,设置 URL 和必要选项
- 用
CURLOPT_HTTPHEADER添加Authorization: Bearer xxx - 记得启用
CURLOPT_RETURNTRANSFER获取响应内容而非直接输出
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.example.com/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_access_token_here',
'Accept: application/json',
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$data = json_decode($response, true);
}
从请求中获取并透传 Token(常见场景)
比如你的 Laravel API 接收前端传来的 Bearer Token,再以相同 Token 调用第三方服务:
- 从当前请求头中提取 Token:
$token = request()->bearerToken(); - 验证 Token 是否存在(避免空值导致 401)
- 将该
$token传给 Guzzle 或 cURL 的 headers
$token = request()->bearerToken();
if (!$token) {
return response('Unauthorized', 401);
}
$client = new \GuzzleHttp\Client();
$response = $client->get('https://api.upstream.com/profile', [
'headers' => ['Authorization' => 'Bearer ' . $token],
]);
安全与调试建议
实际开发中注意以下几点:
- 不要硬编码 Token,敏感 Token 应存于
.env并通过config()或env()读取(仅限测试环境) - 使用
try/catch捕获 Guzzle 异常(如连接失败、超时、4xx/5xx 响应) - 调试时可打印请求头或启用 Guzzle 日志中间件观察实际发出的 Authorization 字段
- Bearertoken 区分大小写,必须是 Bearer(首字母大写,后跟一个空格),不是
bearer或BEARER










