node使用JsonWebToken-生成token完成用户登录登录检测

28次阅读

共计 729 个字符,预计需要花费 2 分钟才能阅读完成。

最近研究登陆,怎么用 node 完成 token 的登陆验证,前端为 vue。
jsonwebtoken 是一个跨域认证标准,它的好处就是可以跨域,跨平台。而且由于服务端不需要保存 token 信息,开发起来非常简单。
第一步安装:

npm install jsonwebtoken

第二步密钥:
详细参数可以看这里链接描述
jwt.sign(payload, secretOrPrivateKey, [options, callback]),在里面有三个参数:
1、payload 可以是 object, buffer 或者 string。
2、secretOrPrivateKey, 这个参数是加密的 key,包含 HMAC 算法的密钥或 RSA 和 ECDSA 的 PEM 编码私钥的 string 或 buffer
3、其余的一些设置。包括:{

   algorithm:加密算法(默认值:HS256)expiresIn:以秒表示或描述时间跨度 zeit / ms 的字符串。如 60,"2 days","10h","7d",Expiration time,过期时间 

}

这里我为了增加密钥的复杂性,我使用了 RSA256 加密 jwt,借助 openssl 来创建 RSA256 密钥对:方法如下:
先下载安装 openssl,安装链接参考。
然后打开 openssl.exe, 生成密钥文件

第三部,密钥有了,我们可以在登陆接口生成 jwt 给客户端了:
先引入

const jwt = require('jsonwebtoken');

  • fs 读取文件的时候读相对路径经常会找不到,借助 path 来读绝对路径给 fs
  • jwt 里存储用户的 id 和 username,expiresIn 表示过期时间。

第四步验证:

生成、验证 token 大致就是这样了。
链接参考:阮一峰老师的这篇博客 JSON Web Token 入门教程

正文完
 0