如果我有一个带有Laravel后端的单页Web应用程序,那么我最好的身份验证选项似乎是带有密码授予身份验证流程的Passport。在Passport中,这将返回访问令牌和刷新令牌。
为了安全起见,我想发布一个短暂的访问令牌,并在过期时刷新它。但是,有关将OAuth与Javascript应用程序一起使用的所有可用信息都说“不要让刷新令牌可供前端访问”,因为它的生命周期很长,并且可以被其他人用来生成新的访问令牌。
单页应用程序(通常实现隐式流程)应该 永远不会收到刷新令牌。刷新令牌本质上是 允许用户保持身份验证的用户凭证 无限期地此敏感信息应安全存储并 没有在浏览器中公开客户端。
这是否意味着基于浏览器的SPA无法使用刷新令牌,因此必须仅发布在合理的“会话”长度后到期的访问令牌,从而迫使用户随后再次登录?
否则,是否有合适的方法可以在使用密码授予身份验证的Laravel Passport应用中实现短寿命访问令牌和刷新令牌,同时又保持良好的安全性?
答案 0 :(得分:0)
存储刷新令牌没有什么害处,因为当访问令牌(如您所说的短暂存在)过期后,它们可用于获取另一个访问令牌,从而提供良好的用户体验。