最近刚用上Shrio做权限控制,然后接触到了JWT
JWT
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。
说白了就是,比如我现在用vue写一个单页面,有一些页面是需要身份验证的,如果你从login页面进入,写一个页面(需要用户信息)它是拿不到前一个页面状态的,他无法去识别我们是不是在前面登陆过,就好像你打开了浏览器登陆了login,然后用另一个浏览器去访问用户的内容,自然它无法通过验证分配给你权限去访问该页面的内容。
JWT恰恰解决了这个问题,你登陆了验证之后后台会发送一个token给你,你只需要把这个token保存在header之中并且转发给前端,前端拿到这个token之后存储在localstorage等,然后每个页面每次需要进行一些行为时,前端可以携带这个token给后台去验证,如果成功,发送一个200,给你进入的权限,如果失败。返回401,执行该命令失败。
然后这样还没解决==
我在这里碰到几个问题:
- 当token过期了是否还要去获取另一个token(跳转到登陆页面…有网友说用户体验太差),还是自动刷新token,但是又如何去解决
- 如果不支持一个账户多个不同地方登陆,如何去销毁前一个token
如何各位大神有好的回答的话,可以在评论区讨论