как исправить passport.authenticate всегда неавторизованным? - PullRequest
0 голосов
/ 31 января 2019

Я обработал данные с использованием jwt, после чего bcrypt будет выполнен с целью passportjs для аутентификации.

, но когда выполняются passportjs, все становится неавторизованным

Я незнаете почему, извините, я новичок в этом.

мои маршруты

const express = require('express');
const router = require('express-promise-router')();
const passport = require('passport');
const passportConf = require('../passport');

const { validateBody, schemas } = require('../helpers/routeHelpers');
const adminController = require('../controllers/admin');

const passportSignIn = passport.authenticate("jwt", { 
    session: false,
    failWithError: true
});
const passportJWT = passport.authenticate('local', { session: false, failWithError: true });

router.route('/signup')
    .post(validateBody(schemas.authSchema), adminController.signUp);

router.route('/signin')
    .post(
        // validateBody(schemas.authSchema),
        passportSignIn,
        adminController.signIn
        );

router.route('/secret')
    .get(
        passportJWT, 
        adminController.secret);

module.exports = router;

для контроллера я беру пример входа

const JWT = require('jsonwebtoken');
const Admin = require('../models/admin');

const { JWT_SECRET } = require('../configuration');

signToken = admin => {
    return JWT.sign({
        iss: 'NodeAPI',
        sub: Admin.id,
        iat: new Date().getTime(),
        exp: new Date().setDate(new Date().getDate() + 1)
    }, JWT_SECRET)
}

signIn : async (req, res, next) => {
        //generate Token
        const token = signToken(req.admin);
        // res.status(200).json({ token })
        console.log(token)
    },

сообщение об ошибке:

AuthenticationError: Unauthorized
    at allFailed (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\passport\lib\middleware\authenticate.js:172:21)
    at attempt (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\passport\lib\middleware\authenticate.js:180:28)
    at JwtStrategy.strategy.fail (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\passport\lib\middleware\authenticate.js:297:9)
    at JwtStrategy.authenticate (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\passport-jwt\lib\strategy.js:96:21)
    at attempt (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\passport\lib\middleware\authenticate.js:361:16)
    at authenticate (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\passport\lib\middleware\authenticate.js:362:7)
    at handleReturn (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express-promise-router\lib\express-promise-router.js:24:27)
    at D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express-promise-router\lib\express-promise-router.js:56:9
    at Layer.handle [as handle_request] (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\layer.js:95:5)
    at next (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\layer.js:95:5)
    at D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\index.js:335:12)
    at next (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (D:\GLHF\LEARN\NODE JS\mm-test\node_modules\express\lib\router\index.js:174:3)

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

...