我应该还是不应该在 Laravel Passport 中使用带有密码授予授权的刷新令牌?
Posted
技术标签:
【中文标题】我应该还是不应该在 Laravel Passport 中使用带有密码授予授权的刷新令牌?【英文标题】:Should I or shouldn't I use refresh tokens with Password Grant authorization in Laravel Passport? 【发布时间】:2019-12-22 01:15:37 【问题描述】:如果我有一个带有 Laravel 后端的单页 Web 应用程序,我最好的身份验证选项似乎是带有密码授予身份验证流程的 Passport。在 Passport 中,这将返回一个访问令牌和一个刷新令牌。
为了安全起见,我想发出一个短期访问令牌并在它过期时刷新它。但是,所有关于在 javascript 应用程序中使用 OAuth 的可用信息都说“不要让前端可以访问您的刷新令牌”,因为它是长期存在的,并且可以被其他人用来生成新的访问令牌。
For example:
单页应用程序(通常实现隐式流)应该 永远不会收到刷新令牌。刷新令牌本质上是一个 允许用户保持身份验证的用户凭据 无限期地。这些敏感信息应安全存储并 没有在浏览器中暴露客户端。
这是否意味着基于浏览器的 SPA 不能使用刷新令牌,因此必须只发布在合理的“会话”长度后过期的访问令牌,然后强制用户再次登录?
否则,是否有合适的方法在 Laravel Passport 应用程序中使用 Password Grant 身份验证实现短期访问令牌和刷新令牌,同时保持良好的安全性?
【问题讨论】:
【参考方案1】:存储刷新令牌没有害处,因为它们可用于在访问令牌(如您所说的短暂)过期后获取另一个访问令牌,从而创造良好的用户体验。
【讨论】:
以上是关于我应该还是不应该在 Laravel Passport 中使用带有密码授予授权的刷新令牌?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 关系我应该使用 hasManyThrough 还是 belongsToMany?嵌套 3 个表
我应该先学习 Angularjs 还是 Laravel? [关闭]
我应该在 admin 和 api 之间重用 laravel 中的控制器吗?还是让我的管理员使用我的 API?