最近想完善一下自己登录模块,之前一直使用shiro框架,但是因为后期要做前后端分离,或对接app,所以登录想改成jwt的模式,但是看了很多资料,越看问题越多,越不知道该怎么写了,请帮助解答。1.jwt的安全性是否靠。2.jwt需要和安全框架一起用吗?比如shiro或springSecurity,哪个更适合集成。3.jwt的接口权限认证如何实现,比如这个用户是否有权限访问某个接口。
1、【jwt的安全性是否可靠】
安全性都是较高的,这里有篇文章详细介绍了JWT与cookie/session的异同
链接1:https://baijiahao.baidu.com/s?id=1740581922153922714&wfr=spider&for=pc?%ra=link
2、【.jwt需要和安全框架一起用吗?比如shiro或springSecurity,哪个更适合集成】
Spring Security更适合集合,大多习惯用SpringSecurity+jwt安全框架
链接2:https://blog.csdn.net/m0_45905500/article/details/123312241?%ra=link
链接3:https://blog.51cto.com/u_14068620/4854532?%ra=link
3、【jwt的接口权限认证如何实现,比如这个用户是否有权限访问某个接口。】
认证方式一般有三种
(Basic Authentication)这种方式是直接将用户名和密码放到Header中,使用Authorization: Basic Zm9vOmJhcg==,使用最简单但是最不安全。
(TOKEN认证)这种方式也是再HTTP头中,使用Authorization: Bearer <token>,使用最广泛的TOKEN是JWT,通过签名过的TOKEN。
(OAuth2.0)这种方式安全等级最高,但是也是最复杂的。如果不是大型API平台或者需要给第三方APP使用的,没必要整这么复杂。
链接4:https://blog.csdn.net/wufaqidong1/article/details/125805620?%ra=link
1.jwt是无法伪造令牌的(除非你的秘钥泄露),另外jwt中明文部分可以解密的。所以不能设置一些比较私密的信息
2.shiro或springSecurity都支持集成jwt,这两个框架的选择是shiro相对轻量级一点,springSecurity稍重一点
3.jwt只是一个令牌。无法做权限的认证。权限认证是你从jwt生成的令牌中获取用户信息。然后通过用户信息去查询的(在登录的时候查询,然后存入框架对应的缓存中)
1.jwt的安全性是否靠?jwt的安全性还是经得起考验的,因为它是常用的解决方案。
2.jwt需要和安全框架一起用吗?jwt可以可安全框架一起用,Shiro和springSecurity都可以,除此之外,还可以跟其它的一期用。独立使用也是可以的。如果您之前用了Shiro,也是可以无缝集成。
3.jwt的接口权限认证如何实现,比如这个用户是否有权限访问某个接口?这个jwt只是绑定了访问令牌,并没有集成权限哦。如果要在应用中进行权限认证,需要自己在业务中实现。
推荐一个JWT的开源框架,值得下载研究一下:https://gitee.com/y_project/RuoYi-Vue
希望可以解决你的问题。
不要怀疑他,大家都再用,而且jwt一般都是和权限框架结合使用的,jwt和权限框架针对的点不同,jwt做的是认证,权限框架做的是权限验证,
shiro或springSecurity 是认证授权框架,jwt是生成令牌的框架,不相关,可以配合使用,在认证后,用jwt生成令牌返回给前端用来单点登入校验