我用在线的工具很容易解码access token,里面包含header payload 和signxxxx.但是refresh token好像不是base64格式的,不能用在线工具解码出来, 请问refresh token是加密的吗?是什么格式的?有哪些组成部分?分别是干什么用的?存在localstorage里面可以被翻译成明文吗?
我用在线的工具很容易解码access token,里面包含header payload 和signxxxx.但是refresh token好像不是base64格式的,不能用在线工具解码出来, 请问refresh token是加密的吗?是什么格式的?有哪些组成部分?分别是干什么用的?存在localstorage里面可以被翻译成明文吗?
首先,理论上讲,与客户端交互,accessToken & refreshToken都是要加密的,不能随意被客户端解密查看信息,只能在有秘钥的后端服务才能解密查看。
基于安全性,信息不能放在localStorage,有被XSS盗用的风险,间接获取到accessToken。建议放在session或是内存中。
3 回答2.3k 阅读✓ 已解决
1 回答1.1k 阅读
1 回答655 阅读
803 阅读
1 回答513 阅读
看起来,你应该是说的 JWT 中的 Refresh Token ,根据 RFC 7519 - JSON Web Token (JWT) ,其中并没有对 Refresh Token 进行定义,也就是说是可以自行实现的。
refresh_token
是 OAuth2.0 中的概念,但是 RFC 6749 - The OAuth 2.0 Authorization Framework 中对于 refresh_token 也并没有要求其按照何种格式编码,鉴于 OAuth2 是有状态的授权,则可以随便生成,只要能识别即可。所以,这里什么都有可能,重要的是能在使用时被后端识别。