0
我正在使用Express和Passport登錄但出現問題:持久登錄會話不起作用。Express,Passportjs持續登錄不起作用
如果我登錄req.isAuthenticated()
它一直在false
。
我使用自定義回調從Passport 和fetch
撥打電話。從fetch
收到的數據正在工作:{ success: true, user }
。
當我不使用自定義回調(見下文)它的工作。
作品
app.post('/login', passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login' }));
不工作
app.js
app.use(morgan('tiny'))
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(express.static(assetPath))
app.use(cookieParser())
app.use(
session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true },
})
)
app.use(passport.initialize())
app.use(passport.session())
routes.js
router.post('/login', (req, res, next) => {
passport.authenticate('local', ({ user, err, message }) => {
if (err) {
return res.send({ user, err, message })
}
if (!user) {
return res.send({ user, err, message })
}
req.login(user, function(err) {
if (err) {
return next(err)
}
return res.send({ success: true, user })
})
})(req, res, next)
})
客戶:
fetch(url, {
method: 'POST',
credentials: 'include',
body: JSON.stringify(values),
headers: { 'Content-Type': 'application/json' },
})
謝謝Paul,我添加了你的代碼,但仍然有問題。 :/ –
我嘗試使用axios,但問題仍然存在... –
更新了我關於您當前的代碼的其他內容。 – Paul