问下JWT思路求大佬指教

我说下我目前对JWT理解是不是这样的:
前端所有页面除了登录界面都包括验证token的信息用ajax提交token在头部来做请求,
通过从后端获取访问数据
不通过从后端返回错误信息
我这里想问的是web路由是前端做还是后端做好?

然后说后端,后端接受到前端提交的用户账号密码
验证通过返回token
验证不通过返回错误信息
这里我想问的是spring-security在JWT需不需要?
需不需要把token放在token里?(我觉得小项目不需要)

关于token刷新问题
前端获取token后放在localstrong比较好?因为我它关闭浏览器会清空数据
每次点击页面也就是每次请求后端都要重新生成新的token返回给前端,前端要做相应的覆盖。
是不是不太要要不要做在小于2分钟才生成新的token

还有个小白问题想问下,刚接触JWT对JWT的API不熟悉,JWT在安全方面这样?
JWT在前端能被解析吗?我说的是解析到我增加的信息?用setClaims方法增加的内容!
我查了下,好像大家都是直接获取和提交token并没有说到前端解析这一块。说下用什么方式和库能解析!·

最后还是想问下目前主流验证是什么?提供体系就好,我自己去查。

阅读 2.5k
4 个回答

JWT一般是用做跨域访问的,token都是在后台解析

JWT已经够主流的了,不需要再去找其他的验证体系。

用JWT就不要用spring-security,spring-security是有状态的,和JWT的风格完全不同,JWT可以实现完全无状态的验证。

路由和JWT没什么关系,前端做权限控制的话,可以验证token是否合法,是否已经过期等。

如果想让关闭浏览器就清空token信息,应该存储在sessionStorage中。一般来说不需要频繁生成新的token,每个token都包含过期时间,过期之前都不需要刷新。

新手上路,请多包涵

JWT只是作为一个用户通道的权限,用于前端跟后端接口交互,大可不必解析JWT的内容。

JWT是否过期这个也交给后端接口去处理,跟后端接口约定好一个授权状态码,当后端接口返回该状态码时,前端控制重新授权即可。

jwt是携带了你的信息的一段加密后的json,简单可以这么理解,以前是用session,session id存在cookie里面,那么通过一定的加密就能知道连接服务器的个体信息,现在不用session那一套,我在cookie,或者localStorage存着一些服务器验证过的信息,然后每次发送请求就带着他,那么服务器也可以知道我的信息了,这个主要用于前后端分离的项目中,因为前端全是html了,无法在后端取出来session了。
关于安全,其实这个作为主流的方式安全还是很可靠的。
基本的设计思路在于,登录成功后生产JWT然后返回给前端,同时还有一个refresh的值,前端负责存储,当前端请求的时候,把JWT带在header头里,先去判断JWT是否过期,如果过期,用refresh去刷新JWT,然后再请求,如果JWT过期,同时refresh也过期了,那就让前端重定向到登录页面吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题