📌  相关文章
📜  获取用户在 laravel 护照中使用令牌的详细信息 - PHP (1)

📅  最后修改于: 2023-12-03 14:57:16.867000             🧑  作者: Mango

获取用户在 Laravel 护照中使用令牌的详细信息 - PHP

在 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 护照中使用令牌的详细信息的完整指南。使用上述方法,您可以获得准确的令牌信息并执行下一步操作。