jsonwebtoken设置token passport passport-jwt获取token

首先设置下载库文件

yarn add passport-jwt  passport jsonwebtoken

jsonwebtoken设置token

     const rule = {id: data._id, name: data.user} // 加密规则
        let token = jwt.sign(rule, 'secret', {expiresIn: 60 * 60}, (err, token) => {
            if (err) throw  err
// 这里直接返回token
            return res.json({code: 0, msg: '用户登录成功', token: "Bearer " + token})
        })

passport passport-jwt获取token

// 在app.js里面引入
const passport = require("passport")

// passport 初始化
app.use(passport.initialize());
require("./config/passport")(passport)

在这里引入的文件里面 记住这里的内容在引入的js里面

const JwtStrategy = require('passport-jwt').Strategy,
    ExtractJwt = require('passport-jwt').ExtractJwt;
// 引入模型
const model = require('../model/model')
// 获取模型
const User = model.getModle('user')
const keys = require("../config/keys");
const _filter = {pwd: 0, __v: 0}
const opts = {}
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = keys.secretOrKey;

module.exports = (passport) => {
    passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
        User.findById(jwt_payload.id, _filter)
            .then(userData => {
                if (userData) {
                    return done(null, userData)
                }
                return done(null, false)
            })
            .catch(err => console.log(err))
    }))
}

// 然后接口调用的时候 //先当当前文件引入

const passport = require("passport")
// 这里的req.user就是默认返回的值
Router.get('/info', passport.authenticate("jwt", {session: false}), function (req, res) {
    // 首先拿到cookie校验
    if (!req.user) {
        return res.json({code: 1, msg: '验证token或者没登录信息'})
    }
    return res.json({code: 0, data: req.user})
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容