我想通过angularjs建立一个水疗中心,并使用laravel作为水疗中心的api。通过laravel护照的文件阅读我发现我需要为此目的使用隐含的补助金。但我不确定它应该如何从前到后工作。我只是希望能够使用用户名和密码登录用户,然后只需使用它,我需要对流程进行一些澄清。这就是我想要的:
但我现在看到的隐含授权与我的期望有点不同。
像这样重定向到oauth / autorize
Route::get('/redirect', function () {
$query = http_build_query([
'client_id' => 'client-id',
'response_type' => 'token',
'scope' => '',
]);
return redirect('http://your-app.com/oauth/authorize?'.$query);
});
重定向显示批准或拒绝授权请求屏幕(这不是我期望的)
令我更加困惑的是,我似乎需要为每个laravel用户提供一个新客户端。我希望有一个代表我的水疗中心的oauth客户端可以访问laravel用户。你能澄清一下吗?
答案 0 :(得分:0)
如果要在JavaScript应用程序中使用密码授予,则必须使用服务器端代理进行身份验证并保护client_secret和刷新令牌。
代理管理整个api通信过程或仅管理认证部分并返回短暂的access_token。身份验证状态通过服务器会话进行管理。由于大多数实现都使用cookie,因此必须根据您的实现保护某些请求免受CSRF攻击。
否则使用隐式授权来验证您的应用。 (有关详细信息,请参阅以下链接)
https://auth0.com/docs/api-auth/tutorials/implicit-grant
https://oauth2.thephpleague.com/authorization-server/implicit-grant/
您可以使用此处所述的静默身份验证刷新访问令牌 https://auth0.com/docs/api-auth/tutorials/silent-authentication
注意:在大多数情况下,刷新令牌不会过期,这对于前端存储来说是一个很大的NO。
客户秘密应始终保密。