Laravel Passport在前后端分离项目中的使用问题
描述:
用户在前端登录以后,获取access_token
,保存至localStorage
,用户注销则销毁localStorage
中的access_token
。如果过期时间8小时的话,在access_token
未过期的时间内,用户多次注销和登录,依然会产生多个access_token
,且都是有效的!
问题:
如何合理的设置过期时间 ?
如何保证用户的同一
Client_id
的access_token
只有一个是有效的(未过期的)?如何清理过期或被撤销的
access_token
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过事件监听来清理token的方法:
将事件注册到
EventServiceProvider
中,代码如下:然后创建两个事件的
Listener
:RevokeOldTokens:
PruneOldTokens:
解决注销之后再登录的密码验证问题
官方给出的方案是监听LaravelPassportEventsAccessTokenCreated事件来revoke多余的token
监听
LaravelPassportEventsRefreshTokenCreated事件来清除过期的token
在官方文档里面有,https://laravel.com/docs/5.4/...