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

最近研究登陆,怎么用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,生成密钥文件
《node使用JsonWebToken 生成token,完成用户登录、登录检测》
《node使用JsonWebToken 生成token,完成用户登录、登录检测》

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

const jwt = require('jsonwebtoken');

《node使用JsonWebToken 生成token,完成用户登录、登录检测》

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

第四步验证:

《node使用JsonWebToken 生成token,完成用户登录、登录检测》

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

    原文作者:soso辉
    原文地址: https://segmentfault.com/a/1190000019551559
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞