Как использовать паспорт js и jsonwebtoken в Node.js и Express? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть API в Node.js и Express, и я использую jsonwebtoken для создания знака, когда пользователь входит в систему.

Я отправляю токен в заголовке клиенту.

Когда пользователь хочет получить профиль. Сначала я проверяю отметку с помощью паспортов, и если знак правильный, я отправляю ему профиль пользователя.

Я пишу этот код для промежуточного программного обеспечения паспорта:

паспорт. js файл:

        let passport = require("passport");
        let {decodedToken} = require('./help');
        let {Users} = require('./database/database');
        let JwtStrategy = require('passport-jwt').Strategy;
        let ExtractJwt = require('passport-jwt').ExtractJwt;
        let opts = {}
        opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
        opts.secretOrKey = 'ashkanhsh1376$CS';

        passport.use(new JwtStrategy(opts,  (jwt_payload, done) => {


        console.log(jwt_payload);//didn't work
        new Users({}).where({id: jwt_payload.id}).fetchAll({}).then(user=>{
            if (user[0]) {
                return done(null, user);
            } else {
                return done(null, false);
            }

        });



}));

Я добавляю файл passport.js в файл Express маршрутизатора следующим образом: require('../possport')';.

и устанавливаю промежуточное ПО на express такой роутер:

routerApi. js:

    let express=require('express');
    let cors=require('cors');
    let passport=require('passport');
    let loginRouter=express.Router();
     require('../possport');

     loginRouter.use(express.json());
     loginRouter.use(cors());

     loginRouter.use("/api/logout", passport.authenticate('jwt', { session: false }));


     loginRouter.post('/api/logout',async(req,res)=>{
     try{
         res.json(res.user);
      }catch{

      }
     });

Для проверки кода выше я использую почтальон, как это изображение:

enter image description here

и я получаю этот результат в почтальоне: enter image description here

Я не знаю, где я ошибся, если бы вы могли помочь

...