(html)前端如何验证token的合法性来判断⽤户是否登录?
问题: (html)前端如何验证token的合法性来判断⽤户是否登录?
描述:
1、我使⽤了JWT的⽅式,后端⽣成了⼀个token,将其返回给前端,前端获取到后每次请求接⼝都附带上这个token,后端来判断这个token 是否合法,如果不合法,后端该如何让其重定向到登录页⾯?是前端根据后端返回的错误信息让前端重定向吗?
2、使⽤react-router之类的前端路由,我在切换路由的时候怎么判断⽤户是否已经登录了呢?毕竟有的页⾯不能让未登录的⽤户访问,如果没有登录,就在前端将其重定向到登录页⾯。这个是要在每次切换前端路由的时候向后端发送⼀个请求来验证吗?如果验证通过了才将页⾯切换过去。
3、或者还有没有什么更好也更安全的保持登录状态的⽅法呢?
解决⽅案1:
楼上说的都没错,我也正在搞这个。后端验证返回错误码,前端判断是登录还是权限不⾜。
解决⽅案2:
1 token保存在前端后端验证不通过返回错误码由前端重定向
2 ⽤react了肯定是个单页应⽤你路由跳转不需要去验证只要登录的时候验证了就可以了后续的通过每个接⼝的权限验证来判断是否有页⾯权限
解决⽅案3:
正在⽤laravel jwt和vue写项⽬在,说下我的想法:
⾸先,前后端⼀定要有个约定,即返回的数据格式及如何处理错误。⽐如我们返回的json的数据格式(⾼级点还有http status响应机制)
{
"code": 0, // 0代表成功,1失败,2未登录....
"msg": "修改成功!"
"data":[]
}
html怎么实现登录验证功能1. 前端每次请求路由之前做个响应(vue对应的是router.beforeEach⽅法,这⾥我不太了解react,但是你查下肯定有这个⽅法),先判断
本地是否有存储⽤户的登录信息,⽆则直接返回登录页⾯(or其它业务页⾯),有则进⾏你的其它操作,这⾥已经回答第⼆个问题了,⾄于你说的部分页⾯才需要⽤户登录,也很简单,只需要对路由进⾏分组处理
2. 登录之后,将后端返回的信息包装存储本地,⽐如token及⽤户信息,以备下次调⽤
3. 这⾥回到你的第⼀个问题,当⽤户请求通过路由前的判断,也就是前端认为⽤户已登录⽤token去请求后端api的时候,后端返回token
过期或者错误的时候怎么处理?这个时候返回的数据code=2,那么我们只需要在统⼀请求后端api接⼝的地⽅做个响应,当code=2,清空本地存储的⽤户数据,前端路由到登录页即可,这⾥不该后端去重定向了
4. 第三个问题不好回答,安全是相对的,这个⽅式已经很安全了。设计的符合⽤户习惯,业务逻辑⽆问题就是我的⽬标
5. 你的标题貌似有问题,token的合法性是后端去判断的,应该问前端如何根据后端对token验证的结果
做出响应
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论