qq_34716834 2022-10-19 17:09 采纳率: 66.7%
浏览 93
已结题

jwt集成和访问权限问题

最近想完善一下自己登录模块,之前一直使用shiro框架,但是因为后期要做前后端分离,或对接app,所以登录想改成jwt的模式,但是看了很多资料,越看问题越多,越不知道该怎么写了,请帮助解答。1.jwt的安全性是否靠。2.jwt需要和安全框架一起用吗?比如shiro或springSecurity,哪个更适合集成。3.jwt的接口权限认证如何实现,比如这个用户是否有权限访问某个接口。

  • 写回答

7条回答 默认 最新

  • Jackyin0720 2022-10-19 17:37
    关注
    
    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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 王旭宁733 2022-10-19 17:15
    关注
    评论
  • ucountonme 2022-10-19 17:19
    关注

    1.jwt是无法伪造令牌的(除非你的秘钥泄露),另外jwt中明文部分可以解密的。所以不能设置一些比较私密的信息
    2.shiro或springSecurity都支持集成jwt,这两个框架的选择是shiro相对轻量级一点,springSecurity稍重一点
    3.jwt只是一个令牌。无法做权限的认证。权限认证是你从jwt生成的令牌中获取用户信息。然后通过用户信息去查询的(在登录的时候查询,然后存入框架对应的缓存中)

    评论 编辑记录
  • 游一游走一走 2022-10-19 17:34
    关注
    1. 安全,密钥不泄漏就行,qa和prod一定不要用同一个密钥
    2. 你可以理解为jwt里面可以存一个不可伪造的userId,然后和正常一样,借助shiro或springSecurity来做权限认证,springSecurity个人更喜欢点,毕竟spring全家桶
    3. 拿到userId后就和你之前的shiro一个套路了
      总的来说就是用一个带验证的不可以伪造的cookie传递值
    评论
  • 夜郎king 2022博客之星IT其它领域TOP 12 2022-10-19 22:21
    关注

    1.jwt的安全性是否靠?jwt的安全性还是经得起考验的,因为它是常用的解决方案。
    2.jwt需要和安全框架一起用吗?jwt可以可安全框架一起用,Shiro和springSecurity都可以,除此之外,还可以跟其它的一期用。独立使用也是可以的。如果您之前用了Shiro,也是可以无缝集成。
    3.jwt的接口权限认证如何实现,比如这个用户是否有权限访问某个接口?这个jwt只是绑定了访问令牌,并没有集成权限哦。如果要在应用中进行权限认证,需要自己在业务中实现。
    推荐一个JWT的开源框架,值得下载研究一下:https://gitee.com/y_project/RuoYi-Vue
    希望可以解决你的问题。

    评论
  • 关注

    不要怀疑他,大家都再用,而且jwt一般都是和权限框架结合使用的,jwt和权限框架针对的点不同,jwt做的是认证,权限框架做的是权限验证,

    评论
  • 西门不止会吹雪 2022-10-20 18:24
    关注

    shiro或springSecurity 是认证授权框架,jwt是生成令牌的框架,不相关,可以配合使用,在认证后,用jwt生成令牌返回给前端用来单点登入校验

    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 10月28日
  • 已采纳回答 10月20日
  • 创建了问题 10月19日

悬赏问题

  • ¥20 C语言字符串不区分大小写字典排序相关问题
  • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据
  • ¥15 学习C++过程中遇到的问题
  • ¥15 关于Linux的终端里,模拟实现一个带口令保护的屏保程序遇到的输入输出的问题!(语言-c语言)
  • ¥15 学习C++过程中遇到的问题
  • ¥15 请问,这个嵌入式Linux系统怎么分析,crc检验区域在哪
  • ¥15 二分类改为多分类问题
  • ¥15 Unity微信小游戏上调用ReadPixels()方法报错
  • ¥15 如何通过求后验分布求得样本中属于两种物种其中一种的概率?
  • ¥15 q从常量变成sin函数,怎么改写python代码?