【发布时间】:2018-11-23 17:22:37
【问题描述】:
我刚刚阅读了https://laravel.com/docs/5.6/passport 文档,我有一些疑问,希望有人可以帮助我:
首先,在某些情况下,我想使用 Passport 为我的移动应用(第一方应用)提供 Oauth 身份验证。
当我使用
php artisan passport:client --password时,我会返回一个客户端 ID 和一个客户端密码。这个值是否必须在我的应用程序上固定?例如将它们存储为硬编码或作为“设置”文件?如果不应该存储这些值,那么它应该如何工作?要将用户注册到我的应用程序,我使用:
$user->createToken('The-App')->accessToken;我知道 accessToken 将用于在我的所有请求中作为 Header(授权 => Bearer $accessToken)发送,但究竟是什么“The-App”的价值?-
对于登录用户,我使用 URL:http://example.com/oauth/token 并作为参数发送:
{ "用户名": "user@email.com", “密码”:“用户密码”, "grant_type": "密码", "client_id": 1, // 我从命令中得到的客户端 ID(问题 1) "client_secret": "Shhh" // 我从命令中得到的客户端密码(问题 1) }
-
当我使用上一个端点登录用户时,我得到了一个 refresh_token,我读到我可以通过 http://example.com/oauth/token/refresh 刷新令牌,但我尝试请求刷新我得到错误 419,我删除了 url oauth/token/从 csrf 验证刷新,现在我返回
"message": "Unauthenticated.",我提出以下请求:内容类型:x-www-form-urlencoded 授予类型:刷新令牌 refresh_token: the-refresh-token // 我从命令中得到的刷新令牌(问题 3) client_id: 1 // 我从命令中得到的客户端 ID(问题 1) client_secret: Shhh // 我从命令中得到的 Client Secret(问题 1) 范围:''
我应该使用这个端点吗?或者鉴于我正在尝试开发的应用程序,这不是必需的。
- 最后,我从护照中获得了很多我认为不会使用的端点,例如:
oauth/clients*、oauth/personal-access-tokens*有没有办法从护照发布的端点中删除它们?
非常感谢您的帮助!
【问题讨论】:
-
对于密码授予,您不能使用
$user->createToken('The-App')->accessToken;生成访问令牌 -
嗨@Wellwisher 你能告诉我为什么我不能使用那个选项吗?
-
该选项用于生成个人访问令牌,并且在您的代码中您使用了密码大。要生成令牌,请使用此方法laravel.com/docs/5.6/passport#requesting-password-grant-tokens
标签: php laravel oauth laravel-passport