# 身份识别

登录鉴权 是一个常见的业务场景,包括账号密码登录方式,邮箱手机号验证码登录等方式,都可以用于实现用户身份的鉴别或识别用户操作是否属于本人。

同时,框架提供了基于Token、验证码、验证键的用户身份识别方法。

# Token

一个典型的token表现为一段被加密的字符串,加密串内含用于身份鉴别和 安全校验的信息。

# 生成

在生成一个token工具类,需要设置token用于加密的密钥secret,以及token的过期时长timeout,单位为秒。

如下生成一个密钥为^dU~sTmYV$DjC&b*,过期时间为10分钟的token。

const libs = require('nodex-libs');
const authes = libs.authes;

let token = new authes.Token('^dU~sTmYV$DjC&b*', 600);
// 生成token字符串,make()可以暂存一些数据在token中
let newToken = token.make('暂存');
console.log(newToken);
// 5KvC7IsK2HGIcRCu/cB+YZlfDqjbFr3OBzO74qiScMEkR5CkiRAZd2TQC6Qwul5R

# 验证

check()用于解密并验证token。如果验证成功,返回token中保存的数据。 如果验证失败,则返回undefined。

如下验证刚才上面生成的token

const libs = require('nodex-libs');
const authes = libs.authes;

let token = new authes.Token('^dU~sTmYV$DjC&b*', 600);
// 验证刚才生成的token
let res = token.check('5KvC7IsK2HGIcRCu/cB+YZlfDqjbFr3OBzO74qiScMEkR5CkiRAZd2TQC6Qwul5R');
console.log(res);
// { data: '暂存', time: 1618645895000, life: 600000 }