我希望能够使用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
中创建另一行,例如密码授予类型。