Laravel 8 隐式授权令牌
2021-07-26 09:51 更新
隐式授权类似于授权码授权;但是,令牌将在不交换授权码的情况下返回给客户端。这种授权最常用于无法安全存储客户端凭据的 javascript 或移动应用程序。通过调用 AuthServiceProvider
中的 enableImplicitGrant
方法来启用这种授权:
/**
* 注册任何身份验证/授权服务。
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Passport::routes();
Passport::enableImplicitGrant();
}
启用上述授权后,开发者们可以使用他们的客户端 ID 从你的应用程序请求访问令牌。接入的应用程序应该向你的应用程序的 /oauth/authorize
路由发出重定向请求,如下所示:
Route::get('/redirect', function (Request $request) {
$request->session()->put('state', $state = Str::random(40));
$query = http_build_query([
'client_id' => 'client-id',
'redirect_uri' => 'http://example.com/callback',
'response_type' => 'token',
'scope' => '',
'state' => $state,
]);
return redirect('http://your-app.com/oauth/authorize?'.$query);
});
技巧: 请记住,
/oauth/authorize
路由已经在Passport::routes
方法中定义好了,所以无需再次手动定义此路由。
以上内容是否对您有帮助:
更多建议: