Платформа Azure Idendity перенаправляет на домашнюю страницу, убедитесь, что аутентификация не работает
Я пытаюсь реализовать этап аутентификации для моего (довольно простого) приложения CRUD. Итак, это идея: при подключении к localhost:8000 / вам нужно нажать кнопку входа в систему, которая предложит вам войти в систему с учетной записью Microsoft. Затем вы должны быть перенаправлены на localhost:8000 / feed. Но он просто перенаправляет меня на localhost:8000. Вторая проблема заключается в том, что я вижу, что MongoDB хранит Cookie. И если я захожу на localhost:8000 / auth / logout, он удаляет его. Так что работает. Но я все еще не могу посетить localhost:8000 / feed, потому что sureAuth не позволит мне.
Убедитесь, что авторизация:
module.exports = {
ensureAuth: function(req, res, next){
console.log("Executing ensureAuth function")
if(req.isAuthenticated()){
console.log("Is authenticated")
return next()
}else{
console.log("ensureAuth failed")
res.redirect("/")
}
},
ensureGuest: function(req, res, next){
if(!req.isAuthenticated()){
return next()
}else{
res.redirect("/feed")
}
}
}
Маршрут авторизации / входа:
router.get('/login',
function(req, res, next) {
passport.authenticate('azuread-openidconnect',
{
response: res,
resourceURL: config.resourceURL,
customState: 'my_state',
failureRedirect: '/'
}
)(req, res, next);
},
function(req, res) {
console.log('Login was called in the Sample');
res.redirect('/feed');
});
Маршрут авторизации / выхода:
router.get('/logout', function(req, res){
req.session.destroy(function(err) {
req.logOut();
res.redirect(config.destroySessionUrl);
});
});
маршрут подачи:
const express = require("express")
const router = express.Router()
const feedController = require("../controllers/feed")
const { ensureAuth, ensureGuest } = require("../middleware/auth")
router.get("/", ensureAuth, feedController.getContent)
router.post("/postScream", feedController.postScream)
module.exports = router
Экспресс-сессия:
app.use(
session({
secret: 'foo',
resave: false,
saveUninitialized: false,
store: new MongoStore({ mongooseConnection: mongoose.connection }),
})
)
Если вам нужен кусок кода, позвоните мне. Буду благодарен за любую поддержку.