【发布时间】:2020-07-13 12:39:21
【问题描述】:
我在理解验证客户端以使用基于 Laravel 构建的 API 的整个过程时遇到问题。有些事情现在不适合我。
我正在尝试在 Laravel 上实现 API 和 OAuth 服务器。 API 将由受信任的本机移动应用程序使用。对我来说更有意义的流程是 Laravel 的 Passport 文档中描述的“密码大令牌”:https://laravel.com/docs/7.x/passport#password-grant-tokens
据我了解实现:
- 用户安装我的移动应用。
- 安装后,系统会提示他“输入用户名/密码”以继续使用该应用
- 点击提交后,我在“/oauth/token”上使用“grant_type”、“client_id”、“username”、“password”、“scope”向我的 Laravel oAuth 服务器实现发出 POST 请求。我省略了“client_secret”,因为我知道将秘密存储在客户端设备上并不是一个好主意。
- 服务器然后检查已经创建的(`php artisan passport:client --password`)“client_id”、“username”、“password”和“response_type”
- 如果所有匹配,它会生成一个令牌,并以“acces_token”和“refresh_token”响应
- 我现在可以调用我的 API 端点“/api/whatever/method_name”
我的问题在第 4 点。如果用户已经存在于我的数据库中,我只能发出访问令牌,但我假设这是用户第一次使用我的应用程序。 postman_response
我是否还需要一个“身份验证”步骤,用户发送用户名/密码并且 OAuth 服务器提示“授权应用程序”使用您的数据,此时将用户保存在数据库中,然后继续?
【问题讨论】:
-
如果你想在你的应用程序中注册一个用户,只需将注册表单指向你的 laravel api 的公共路由,你的整个应用程序不必使用护照中间件。跨度>
标签: laravel oauth token laravel-passport grant