最近研究登陆,怎么用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 入门教程