Я пытаюсь отлаживать неудовлетворительную JWT настройки аутентификации, которая всегда возвращает 401.Нет журналов после Passport.js аутентификации промежуточного программного
Мой паспорт установки (middleware/auth.js
)
import passport from 'passport'
import { Strategy as JwtStrategy, ExtractJwt } from 'passport-jwt'
module.exports = function() {
var options = {};
options.jwtFromRequest = ExtractJwt.fromAuthHeader()
options.secretOrKey = 'superdupersecret'
var strategy = new JwtStrategy(options, function(payload, done) {
console.log('this is not printing') <---------------
var user = payload.sub || null;
if (user) {
return done(null, { id: user._id });
} else {
return done(new Error("User not found"), null);
}
});
passport.use(strategy);
return {
initialize:() => {
console.log('this only prints on boot'); <---------------
return passport.initialize();
},
authenticate:() => {
console.log('this too') <---------------
return passport.authenticate("jwt", {session: false});
}
};
};
Мой файл server.js где инициализирую паспорт:
import express from 'express'
(...)
var auth = require("./middleware/auth.js")();
// Instantiate app
const app = express();
// Initialize passport for auth use
app.use(auth.initialize())
И мой защищенный маршрут, который всегда возвращает 401:
import express from 'express'
var auth = require("../middleware/auth.js")();
const userRouter = express.Router()
userRouter.get('/dashboard', auth.authenticate(), (req, res) => {
res.send('It worked! User id is: ' + req.user + '.')
})
export default userRouter
Я попытался добавить заявления о печати в пределах фактического модуля passport.js, а также паспорт-jwt, без успеха.
После промежуточного программного обеспечения аутентификации на защищенном маршруте ничего не регистрируется.
Я пробовал тонну перестановки настроек over the past 3 days now. Любая помощь была бы принята с благодарностью
что внутри auth.authenticate? это называется? – yBrodsky
@yBrodsky auth.authenticate находится в возвращаемом объекте в первом примере кода. Он не регистрирует что-либо по запросу, но все равно возвращает 401 – softcode
удаляет скобки() из userRouter.get ('/ dashboard', auth.authenticate() <--- это скобки – yBrodsky