【发布时间】:2020-07-31 23:59:46
【问题描述】:
我想开发一个以 Laravel 作为后端的 Nuxt SPA。阅读 Passport 文档,现在对以下段落感到困惑,因为我不想将用户重定向到后端登录页面:
使用 PKCE 授予授权码
带有“代码交换证明密钥”(PKCE) 的授权代码授权是一种安全的方式来验证单页应用程序或本机应用程序以访问您的 API。当您无法保证客户端机密将被保密存储或为了减轻授权代码被攻击者截获的威胁时,应使用此授权。在交换访问令牌的授权代码时,“代码验证器”和“代码质询”的组合取代了客户端密码。
在客户端浏览器中发出以下请求并将令牌保存在客户端浏览器中的问题是什么?
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' => '',
],
【问题讨论】:
-
我对 Nuxt SPA 一无所知,但如果您将
'password'和'client-secret'提交给'http://your-app.com,任何嗅探包裹通过的任何网络的人都可以看到这些值(并且当您第一次将它们从服务器提交到浏览器以编写该 AJAX 请求时可能相同)。
标签: php laravel oauth-2.0 nuxt.js laravel-passport