ABH*_*K.M 3 php token oauth-2.0 laravel laravel-passport
我计划将 Laravel Passport System 用于 ANGULAR 6 API。按照文档安装。
但我有一点困惑。请尝试解决它。
1. 如何提供代币?
这是正确的方法吗?
/sf/ask/3794127921/
Run Code Online (Sandbox Code Playgroud)
OR 编码 LIKE 是正确的方法吗?:
$request->request->add([
'username' => $request->email,
'grant_type' => 'password',
'client_id' => env('PASSWORD_CLIENT_ID'),
'client_secret' => env('PASSWORD_CLIENT_SECRET'),
'scope' => '',
]);
// forward the request to the OAuth token request endpoint and Return Token
$res = Route::dispatch(request()->create('oauth/token', 'POST', $this->loginCredentials($request)));
$this->api_response = json_decode($res->getContent());
return response()->json(['token' => $this->api_response,'usersDetail' => $user], 200);
Run Code Online (Sandbox Code Playgroud)
需要使用哪种方法以及为什么请详细说明?
2. 如何处理 Angular 的刷新令牌系统?
就像刷新(鼠标按钮刷新)需要调用Laravel API?应该如何?请用 Laravel 和 Angular 代码详细说明。
请详细回答这个问题。正在寻找好的答案!
\n\n\n如何提供令牌?\n 这是正确的方法吗?\n 或者编码 LIKE 是正确的方法?
\n
它使用不同的补助金。正确的方法取决于您的应用需求。在实施 OAuth 之前,您需要了解授权类型:
\n\n如果您曾经使用 Facebook 或 Google 帐户登录过应用程序,那么授权代码授予应该非常熟悉。
\n\n隐式授予类似于授权码授予,但有两个明显的区别。
\n\n它旨在用于基于用户代理的客户端(例如单页 Web 应用程序),这些客户端可以\xe2\x80\x99t 保守客户端机密,因为所有应用程序代码和存储都可以轻松访问。
\n\n其次,授权服务器不是返回用于交换访问令牌的授权码,而是返回访问令牌
\n\n对于网络上和本机设备应用程序中受信任的第一方客户端来说,这项资助都带来了良好的用户体验。
\n\n这是所有 OAuth 2.0 授权中最简单的一种,适用于不需要特定用户\xe2\x80\x99s 访问数据的权限的机器对机器身份验证。
\n\n访问令牌最终会过期;然而,有些授权会使用刷新令牌进行响应,这使客户端能够获取新的访问令牌,而无需重定向用户。
\n\n授予是一种获取访问令牌的方法。决定实施哪些授权取决于最终用户将使用的客户端类型以及您希望为用户提供的体验。
\n\n\n\n\n如何处理 Angular 的刷新令牌系统?
\n
访问令牌最终会过期;客户端将带有以下正文参数的 POST 请求发送到/oauth/token:
grant_type与价值refresh_tokenrefresh_token使用刷新令牌client_id与 client\xe2\x80\x99s IDclient_secret与 client\xe2\x80\x99s 秘密scope带有空格分隔的请求范围权限列表。这是可选的;如果未发送,将使用原始范围,否则您可以请求一组减少的范围。$http = new GuzzleHttp\\Client;\n\n$response = $http->post(\'http://your-app.com/oauth/token\', [\n \'form_params\' => [\n \'grant_type\' => \'refresh_token\',\n \'refresh_token\' => \'the-refresh-token\',\n \'client_id\' => \'client-id\',\n \'client_secret\' => \'client-secret\',\n \'scope\' => \'\',\n ],\n]);\n\nreturn json_decode((string) $response->getBody(), true);\nRun Code Online (Sandbox Code Playgroud)\n\n或者您可以使用 AngularHTTPInterceptor进行令牌刷新。HTTP 拦截器用于添加用于日志记录、修改响应、错误处理的自定义逻辑,但一种常见的情况是自动将身份验证信息附加到请求并刷新令牌,以保持用户会话处于活动状态。
参考:
\n\n\n| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |