在在node中使用中使用jwt签发与验证签发与验证token的方法的方法
主要介绍了在node中使用jwt签发与验证token的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参
考下
1.什么是什么是token
token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。
token是在服务端产生的。如果前端使用用户名和密码向服务端发送请求认证,服务端认证成功,那么在服务端会返回token给
前端。
前端可以在每次请求的时候带上token证明自己的合法地位。如果token在服务端持久化,那他就是一个永久的身份令牌。
2.什么是什么是jwt
jwt,即JSON Web Token的缩写,是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间作为
JSON对象安全地传输信息。
jwt由三个部分组成,它们之间用.分开,通常如下所示xxxxx.yyyyy.zzzzz,
第一个部分为Header,由两部分组成,类型和算法,例如
{
"alg": "HS256", // 算法
"typ": "JWT" // 类型
}
第二个部分为Payload,用来存放实际需要传递的数据。JWT 规定了7个官方字段,供选用。例如:
{
iss (issuer):签发人
exp (expiration time):过期时间
sub (subject):主题
aud (audience):受众
nbf (Not Before):生效时间
iat (Issued At):签发时间
jti (JWT ID):编号
}
除了官方字段,你还可以在这个部分定义私有字段,下面就是一个例子。
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
请注意,对于token,此信息虽然可以防止被篡改,但任何人都可以读取。除非加密,否则不要将秘密信息放在JWT的
Payload或Header元素中。
第三部分为Signature,Signature 部分是对前两部分的签名,防止数据篡改。
首先,需要指定一个密钥(secret)。这个密钥只有服务器才知道,不能泄露给用户。然后,使用 Header 里面指定的签名算
法(默认是 HMAC SHA256),按照下面的公式产生签名。
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)
算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用"点"(.)分隔,就可以返回给用
户。
3.使用使用node签发签发token
首先需要下载jwt的依赖包
npm install jsonwebtoken
然后在文件中使用
var jwt = require('jsonwebtoken')
const payload = {
name: 'boom'
评论0
最新资源