• pedro
    2021-07-22
    问题1:JWT中可新增一个 valid 字段用于表示 token 是否有效,注销后则无效。 问题2:token还是存储在cookie中比较好,可由服务端保存,localstorage在纯前端,中很容易泄露。

    作者回复: 满分!

    共 10 条评论
    17
  • 如来神掌
    2021-07-22
    方案挺多,如下: 1、最简单的,客户端直接删除token,但有弊端 2、token计入数据库,登录后对比,注销时删除 3、注销后记录到黑名单,下次登录后清楚黑名单 4、直接记到Redis,注销后删除,登录后存入,类似数据库 ……

    作者回复: 老哥回答的很赞。主要是删除token在客户端和服务端的缓存

    
    6
  • 8.13.3.27.30
    2021-07-22
    根据文中认证和授权的解释、我理解Oauth应该属于授权?而不是认证

    作者回复: 其实都属于

    共 3 条评论
    4
  • 授人以🐟,不如授人...
    2021-10-17
    【JWT 由三部分组成,分别是 Header、Payload 和 Signature,它们之间用圆点.连接,并使用 Base64 编码,例如:JhdWQiOiJpYW0uYXV0aHoubWFybW90ZWR1LmNvbSIsImV4cCI6MTYwNDE1ODk4NywiaWF0IjoxNjA0MTUxNzg3LCJpc3MiOiJpYW1jdGwiLCJuYmYiOjE2MDQxNTE3ODd9.d_2gj3vyEUlMq1b9A0tJoKdLvMInAEfQmdK7XZkB980】 这部分举的例子不是一个 token,token 分为的 3 个部分用 . 连接起来的。

    作者回复: 说的对,我找编辑改正下。感谢感谢!

    
    3
  • Geek_521f9b
    2022-09-24 来自广东
    萌新问一下,这些认证方式是不考虑被抓包的情况吗,建立在https之上,那h264加密是为了什么,直接用base64不行吗

    作者回复: base64不是用来认证的。 抓包也抓不到密钥

    
    2
  • 杨丁
    2021-11-30
    问题1:想完全注销,只能注销时在服务端加token黑名单。客户端删除token并不能使该token在服务端失效 问题2:jwt的优势之一就是无状态,因此我认为localstorage比cookie更好一点

    作者回复: 问题1:客户端删除token,就没法访问了。所以,服务端其实不用加黑名单

    
    2
  • 宙斯
    2021-07-30
    digest认证中,“WWW-Authentication头中包含的信息见下表:”,这里的下表,应该没有password吧,否则密码被泄露了

    作者回复: 感谢反馈,我们更新下

    
    2
  • kitten
    2021-07-25
    用jwt就是为了节约服务端缓存。jwt token一旦颁发了,在有效期内无法注销。如果在服务端存了这个jwt的缓存,大可不必使用jwt,随机生成一个uuid给客户段就可以做登录凭证了。所以不知道老师出这个题目的目的是什么🤔?

    作者回复: jwt可以节约服务端资源,但这不是用jwt的唯一目的。 服务端不会直接缓存token。 用UUID做凭证有很多问题: 1. 没有过期时间 2. UUID不包含用户信息 3. UUID可以伪造,Token有加密算法加密一些信息,更难伪造

    共 2 条评论
    2
  • The brain is a g...
    2022-06-28 来自广东
    jwt续签怎么做会比较好呢,服务端是不是要对token的有效期做一个临界点判断?比如设置2小时,还有5分钟就要过期,就会重新生成新的token? 但这样又会有个问题,客户端 超过5分钟没有操作就会导致token失效。并且 client怎么感知 是否应该重新刷新token呢?

    作者回复: 续签需要客户端在有效期内主动发起续签操作,服务端自动续签,那这个token不就长期有效了,一旦token被截取,别人就可以长期访问了。 client根据需要判断师傅需要刷新token

    
    1
  • 史努比
    2022-03-09
    Oauth的密码认证方式和bearer认证方式是啥关系,感觉第一种包含了第二种啊,最后都用到token去做认证

    作者回复: 不是包含与被包含的关系。认证流程都不一样

    
    1