JWT(JSON Web Tokens)
什么是JW?
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)
JWT构成
JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串。就像这样:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
分为头部,载荷,签证信息,之间用.
分割。
为什么要用JWT
基于token的认证机制的应用不需要考虑用户在哪一台服务器登录,为应用拓展提供了便利性。
怎么用
一般是在请求头里加入Authorization
,并加上Bearer
标注:
fetch('api/user/1', {
headers: {
'Authorization': 'Bearer ' + token
}
})
服务端会验证token,通过则会返回相应的资源。
总结
优点
- 由于json的通用性,所以可以跨语言
- payload部分可以承载部分非敏感信息
- 构成简单,占用空间少,便于传输
- 不需要在服务端保存会话信息,易于应用扩展
安全相关
- payload部分不存放敏感信息
- 保护好secret私钥
- 尽量使用https协议,保护token不外泄