登录操作后在 Guzzle HTTP 客户端中设置 Authorization Bearer 标头 - Laravel

Posted

技术标签:

【中文标题】登录操作后在 Guzzle HTTP 客户端中设置 Authorization Bearer 标头 - Laravel【英文标题】:Set the Authorization Bearer header in Guzzle HTTP client After Login Action - Laravel 【发布时间】:2021-01-01 12:55:33 【问题描述】:

我目前正在开发一个 laravel 项目以向 API 发出请求。 对端点的每个请求都需要标头中的令牌。

我为登录创建了一个函数,当登录成功时,我想在每个对端点的请求的标头中放置一个令牌。

我可以使用 Guzzle 做到这一点吗?

这是我的登录功能

public function login(Request $request)

    $client = new Client();
    $url = "http://localhost:8002/login";

    $request = $client->post($url, [
        'headers'=> ['Content-Type' => 'application/json'],
        'body' => json_encode([
            'email' => $request->email,
            'password' => $request->password,
        ])
    
    ]);

    $response = json_decode($request->getBody());
    $token = $response->result->token; //I have got the token
    


【问题讨论】:

【参考方案1】:

根据您的情况,您应该在成功登录后使用任何数据存储来保留您的授权令牌。会话存储将是一个好的开始。

还取决于您的 API 使用的授权类型(承载令牌、基本身份验证...),将标头添加到 Guzzle 请求将如下所示:

$request = $client->post($url, [
    'headers'=> ['Authorization' => 'your auth header with auth token'],
    'body' => json_encode([
        'foo' => 'bar',
    ])

]);

【讨论】:

以上是关于登录操作后在 Guzzle HTTP 客户端中设置 Authorization Bearer 标头 - Laravel的主要内容,如果未能解决你的问题,请参考以下文章

在 Guzzle 中设置代理

如何在 ipad 中使用 jquery 加载页面后在文本框中设置光标

查询后在猫鼬对象中设置属性[重复]

查询后在猫鼬对象中设置属性[重复]

36.Django中设置获取和删除cookie

37.Django中设置获取和删除cookie