JWT是什么

现在BS/CS常见的用户认证方式中比较常见的是cookie&session 以及 token ,jwt就是token 的一种,一般token 使用的方式就是在请求的url 加上token 字符串或者放到http header 里面,jwt 也是这样 标准文档
jwt 呈现出的方式是一个紧凑且url safe的字符串,和一般token一样,jwt也有一套生成的规则。 jwt 的token 看起来是这样样子的 (JWS形式 ,jwt 还有另一种形式JWE)

xxxx.yyyy.zzzz Header.Payload.Signature
三部分都通过base64 safe url encode 处理

WX20190701-114948

图片来源于 https://jwt.io/ 截图 这个截图Web界面里面的原json 字符有格式化的显示,实际base64urlencode 的时候字符串里有什么都会被encode 包括换行空格,空格换行不影响json 的encode 和 decode ,这个实际上和jwt已经没关系了

WX20190701-121119

关于header 和 playload 字段中的意义和signature的方式都可以看标准文档,至于jwt想怎么使用 和其他token没什么差别,放到url或者http header(既然是个字符串也可以放到cookie里 ,但是jwt就是为了解决cookie不能跨域的问题的,这样做又兜回去了)都可以,工程上的决定看开发者