当前位置: 首页 > 知识库问答 >
问题:

问题理解Laravel 6.0护照与密码授予令牌流

狄心水
2023-03-14

我在理解验证客户端以使用基于Laravel构建的API的整个过程时遇到问题。有些东西现在不适合我。

我试图在Laravel上实现一个API和一个OAuth服务器。API将由受信任的本机移动应用程序使用。对我来说更有意义的流程是“密码大令牌”,如Laravel的Passport文档中所述:https://laravel.com/docs/7.x/passport#password-授予代币

据我了解,执行情况如下:

  1. 用户安装我的移动应用程序

我的问题在第4点。如果用户已经存在于我的数据库中,我只能发出访问令牌,但我假设这是用户第一次使用我的应用程序。postman_response

我是否还需要一个"认证"步骤,在用户发送用户名/密码和OAuth服务器提示"授权应用程序"使用您的数据,并在此时将用户保存在数据库中,然后才继续?

共有2个答案

沈子实
2023-03-14

我建议如下:

  1. 登录方法中,检查用户是否存在。
  2. 如果存在,请登录他。
  3. 要不,先给他注册,然后再登录
  4. 最后,返回访问令牌
艾才良
2023-03-14

通常你有一个注册路由,这是没有授权,否则你没有进入应用程序。想象你的路线文件。

Route::middleware('auth:api')->group(function () {
       Route::post('/todos', 'TodoController@index');
});

// Without auth
Route::post('/register', 'RegisterController@register');

为了隐藏凭据,通常更容易使用代理方法,因此后端可以保存client_id和client_secret,因为它们总是相同的(除非您正在构建oauth服务器)。

Route::post('/login', 'LoginController@login');

它将接收用户名和密码,在内部调用oauth/token,并在过程中添加client\u idclient\u secret,然后返回令牌。要通过注册保存一些调用,可以在注册后使用注册时拥有的凭据使用相同的方法获取oauth令牌,并立即返回令牌。

 类似资料:
  • 我刚读了报纸https://laravel.com/docs/5.6/passport我有一些疑问,希望有人能帮助我: 首先,在某些上下文中,我想使用Passport为我的移动应用程序(第一方应用程序)提供Oauth身份验证。 > 要向我的应用程序注册用户,我使用:

  • 我在Laravel中创建了两个项目,一个是护照服务器,另一个是客户端。我在服务器项目中配置了完整的护照。我也得到了access_token。 当我授权我的客户端项目时,它会在我的浏览器中显示这个。 {“令牌类型”:“承载”、“到期日”:31536000,“访问令牌”:*******,“刷新令牌”:******} 现在,我的问题是如何为用户传递/授予访问令牌并转到我的客户端面板。我已经用邮递员检查过

  • 我正在使用Laravel的Passport库,并使用密码授权类型生成访问令牌。令牌过期时间已设置为10分钟。 现在我的问题是,当令牌过期时,用户会得到

  • 我一直在广泛阅读有关OAuth和OpenID Connect的内容,但此问题专门涉及OAuth2资源所有者密码授予(又名OAuth2资源所有者凭据授予,又名OAuth2密码授予) 某些资源(例如Justin Richer的《OAuth2 in Action》一书)说不要使用OAuth2资源所有者密码授予进行身份验证-请参阅书中的第6.1.3节。 以下其他好资源都说我们可以使用OAuth2资源所有者

  • 问题内容: 我正在编写一个想同时用作Web应用程序和API提供程序的nodejs应用程序。验证用户身份后,我想为该用户分配一个令牌,以用于后续请求。这对于Web应用程序的通行证非常有用,因为我只是在会话中使用令牌对用户进行序列化和反序列化。但是,在响应API请求时,没有用于设置存储会话信息的cookie。理想情况下,护照将在会话和请求正文中都寻找令牌。有什么方法可以配置通行证来完成此任务吗? 问题

  • 我执行本问题中描述的步骤: Laravel的5.3护照和api路由 从api的路径来看,一切都很好,我可以注册新用户,读取他们的数据等等。 然后在AuthServiceProvider上添加此命令 护照::代币ExpireIn(碳::现在()- 我以url{{url}}/oauth/token登录邮递员 正文:application/x-www-form-urlencoded { 授权类型:{pa