Я пытался аутентифицировать свои маршруты, используя специальную стратегию, основанную в базовой стратегии «pass-http». Это код моей стратегии.Паспорт всегда возвращает 401, когда я использую app.use
passport_auth.js
var BasicStrategy = require('passport-http').BasicStrategy;
module.exports.userBasic = (function(name){
var userAuthBasic = new BasicStrategy(
function(username, password, done) {
//My strategy
}
);
userAuthBasic.name = name;
return userAuthBasic;
})('userBasic');
Использование IIFE зарегистрировать название моей стратегии. Затем в файле app.js
Призываю следующим образом:
app.js
var express = require('express');
var bodyParser = require('body-parser');
var passport = require('passport');
var userRouter = require(__dirname+'/http/routers/user_router.js');
const cors = require('cors')();
var passportAuth = require(__dirname + '/http/passport_auth'); //My file with my strategy
//Adds to passport my strategy
passport.use(passportAuth.userBasic);
var app = express();
app.use(cors);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
app.use('/user', passport.authenticate('userBasic', { session: false }), userRouter);
userRouter
содержит несколько маршрутов. Когда я пытаюсь выполнить POST для/user/anything, всегда возвращайте статус кода 401.
Эта конфигурация хороша? В другом модуле тот же код работает нормально, но в этом случае я потратил много часов, пытаясь решить это.
спасибо, я буду править прямо сейчас. –