因此,我试图理解jwt身份验证的流程,我有一些漏洞,这就是我得到的:
我的问题是:
谢谢!
发布于 2019-03-30 22:53:15
总之,jwt身份验证流比这更简单:
发布于 2019-03-31 09:03:19
JSON令牌由三个部分组成,即头、有效载荷和签名。报头和有效载荷不是加密的,而是编码的(base64),这意味着客户端可以简单地解码这些部分。
因此,要回答您的第一个问题,->,客户端只需对有效负载部分进行解码,并从已登记的债权读取exp属性。如果使用的是节点-jsonwebtoken库,则如下所示:
// get the decoded payload and header
var decoded = jwt.decode(token, {complete: true});
console.log(decoded.header);
console.log(decoded.payload)为了让服务器验证令牌,您必须从用于签名JWT的密钥对中提供密钥或公钥。使用节点-jsonwebtoken,它将按照以下方式工作:
// verify a token asymmetric
const cert = fs.readFileSync('public.pem'); // get public key
jwt.verify(token, cert, function(err, decoded) {
console.log(decoded.foo) // bar
});
OR
// verify a token symmetric using secret
const decoded = jwt.verify(token, 'mySecret');https://stackoverflow.com/questions/55430808
复制相似问题