Web前端之路让前端飞程序员

Nodejs-token

2017-06-17  本文已影响237人  07120665a058

token基础

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ 
// 1. Headers头部
// 包括类别(typ)、加密算法(alg)
{
 "alg": "HS256",
 "typ": "JWT"
}
// 2. Claims载荷
// 包括需要传递的用户信息
{
 "sub": "1234567890",
 "name": "John Doe",
 "admin": true
}
// 3. Signature签名
// 根据alg算法与私有秘钥进行加密得到的签名字串
// 这一段是最重要的敏感信息,只能在服务端解密
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), SECREATE_KEY)

核心代码

const jwt = require('jsonwebtoken');
const secret = 'qwert';   //自定义
app.set('superSecret', secret);
 //生成token
const token = jwt.sign(user, app.get('superSecret'));
//解码token
jwt.verify(token, app.get('superSecret'), function (err, decoded){
    //decoded 是得到的用户信息
}

原理

总结

demo地址

参考文章推荐:
Authenticate a Node.js API with JSON Web Tokens
JWT 在前后端分离中的应用与实践

上一篇下一篇

猜你喜欢

热点阅读