如何使用Laravel Passport以编程方式获取用户的访问令牌?

时间:2019-11-12 23:39:20

标签: laravel laravel-passport laravel-6

我希望能够使用Laravel Passport v8来以编程方式获取用户的访问令牌(管理员用于切换用户)。

根据文档(https://laravel.com/docs/6.x/passport#requesting-password-grant-tokens ),您可以这样做:

$http = new GuzzleHttp\Client;

$response = $http->post('http://your-app.com/oauth/token', [
    'form_params' => [
        'grant_type' => 'password',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'username' => 'taylor@laravel.com',
        'password' => 'my-password',
        'scope' => '',
    ],
]);

$data = json_decode((string) $response->getBody(), true);
// then get the access token via $data

但是,这需要服务器发送另一个请求并知道密码。

另一种方法如下:

$token = $user->createToken('Token Name')->accessToken;

但是,与上面的密码授予方法不同,这会在oauth_access_tokens表中创建访问令牌。

有没有一种更好的方法可以以编程方式创建用户访问令牌,而无需在oauth_access_tokens中创建另一行,例如密码授予类型。

0 个答案:

没有答案