作者回复: 嗯,节省集中式令牌校验开销,实现无状态授权认证,是jwt等自包含令牌一大优势。
作者回复: 如果使用授权码模式且启用支持refresh token,则用户webapp经过授权认证可获取一对access token和refresh token对,后继访问api可用access token,refresh token可暂存(一般可存webapp对应db或cache,后面如果access token过期的话,webapp就可用refresh token重新获取access token。
作者回复: 可以,适合单页应用,实现无状态登录
作者回复: 具体要看场景对安全的严格要求程度,大部分场景轻量级jwt这种无状态自包含令牌就基本ok了,有些要求比较严的场景(比如金融行业),需要透明令牌+有状态集中式校验,这个时候一般可以采用redis做令牌缓存进行令牌校验操作的性能优化。
作者回复: 也不一定,具体要看应用场景,有些应用(比如一些文章社区站点)是安全不敏感的,user name/id之类信息被外面用户看到也没关系(当然密码之类机密信息肯定不能放在自包含token向外暴露);而有些应用则是安全敏感的(例如涉及交易支付的),则不能随便泄露用户敏感信息,一般对外要用透明令牌并且严格校验。
作者回复: 根据安全需求,合理设置令牌有效期,可做一些加秘密,增加黑客偷取难度
作者回复: 授权码模式是支持刷新令牌的,令牌过期通过刷新令牌换新令牌。