📅  最后修改于: 2023-12-03 14:57:16.867000             🧑  作者: Mango
在 Laravel 中使用护照(Passport)进行 OAuth2 认证时,可以使用令牌在用户登录后访问受保护的资源。本文介绍如何获取用户在 Laravel 护照中使用令牌的详细信息。
获取用户授权的令牌,需要先进行登录认证,然后使用请求头中的 Authorization
字段来获取令牌。
$accessToken = $request->bearerToken();
注意:bearerToken()
和 header('Authorization')
值一样,不提供解码功能。
获取令牌的详细信息,需要使用 Laravel 护照提供的方法 oauth/access_token
来获取。
$accessToken = $request->bearerToken();
$url = config('app.url') . '/oauth/access_token';
$params = [
'headers' => [
'Authorization' => 'Bearer ' . $accessToken,
],
];
$client = new GuzzleHttp\Client();
$response = $client->request('POST', $url, $params);
$content = $response->getBody()->getContents();
getBody()
返回一个 Psr\Http\Message\StreamInterface
实例,通过 getContents()
方法获取响应内容。
返回的 $content
是一个 JSON 字符串,包含了获取到的令牌信息。如果您想使用数组形式表示该返回值,则可以使用 json_decode()
函数:
$result = json_decode($content, true);
以下是一个示例返回值:
{
"token_type": "Bearer",
"expires_in": 31536000,
"access_token": "...",
"refresh_token": "...",
"created_at": 1620304558
}
以上是如何获取用户在 Laravel 护照中使用令牌的详细信息的完整指南。使用上述方法,您可以获得准确的令牌信息并执行下一步操作。