共计 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 入门教程
正文完