node server如何实现登录生成token及接口校验token
Posted chi1130
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node server如何实现登录生成token及接口校验token相关的知识,希望对你有一定的参考价值。
创建方法
在utils下创建一个token.js 抛出setToken,getToken方法
var jwt = require("jsonwebtoken");
var jwtSecret = "write messages"; //签名
//登录接口 生成token的方法
var setToken = function(_id, openid)
return new Promise((resolve, reject) =>
//expiresln 设置token过期的时间
// openid: openid, _id: _id 传入需要解析的值( 一般为用户名,用户id 等)
const rule = _id: _id, openid: openid ;
// const token = 'Bearer ' + jwt.sign(rule, jwtSecret, expiresIn: '36000' );
const token = jwt.sign(rule, jwtSecret, expiresIn: '7d');
resolve(token);
);
;
//各个接口需要验证token的方法
var getToken = function(token)
return new Promise((resolve, reject) =>
if (!token)
console.log("token是空的");
reject(
error: "token 是空的"
);
else
var info = jwt.verify(token, jwtSecret);
// console.log('info: ', info);
resolve(info); //解析返回的值(sign 传入的值)
);
;
module.exports =
setToken,
getToken
;
使用
var express = require('express')
var router = express.Router()
const Like = require('../models/Like') //引入模块模型
var vertoken = require('../utils/token') //引入token
// 个人点赞列表
router.get('/article/like/list', (req, res) =>
vertoken
.getToken(req.headers.token)
.then((data) =>
Like.find(
userId: data._id,
)
.then((likes) =>
res.json(
code: 200,
result:
data: likes,
,
message: '请求成功!',
)
)
.catch((err) =>
console.log('err:', err)
)
)
.catch((error) =>
console.log('error:', error)
res.json( code: 401, message: 'token失效了' )
)
)
完整代码
以上是关于node server如何实现登录生成token及接口校验token的主要内容,如果未能解决你的问题,请参考以下文章