如何在使用 passport.authenticate 重定向之前执行功能
How to perform a function before a redirect with passport.authenticate
我正在使用登录脚本的 WebDevSimplifieds 版本。到目前为止它的工作,但我现在被困在一个我想在登录后重定向之前 运行 的功能。
用户在登录页面上输入所有凭据,如果一切正确,用户将被重定向到 index.ejs(html)。在重定向之前,我想运行一个函数,它根据用户在特定字段中输入的内容来改变服务器变量。
这是可行的,当然没有附加功能。
app.post(
'/login',
checkNotAuthenticated,
passport.authenticate('local',
{
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
}
)
)
我想要那样的东西。 console.log 命令有效,但 passport.authenticate 无效。
app.post(
'/login',
checkNotAuthenticated, (req, res) => {
console.log("that works");
passport.authenticate('local',
{
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
}
)}
)
passport.authenticate
returns 具有签名 (req, res, next)
的函数,即中间件。
module.exports = function authenticate(passport, name, options, callback) {
// ...
return function authenticate(req, res, next) {
// ...
};
// ...
};
您需要调用该函数。
app.post(
'/login',
checkNotAuthenticated,
(req, res, next) => {
console.log("that works");
const authFunc = passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
});
authFunc(req, res, next);
)}
)
我正在使用登录脚本的 WebDevSimplifieds 版本。到目前为止它的工作,但我现在被困在一个我想在登录后重定向之前 运行 的功能。
用户在登录页面上输入所有凭据,如果一切正确,用户将被重定向到 index.ejs(html)。在重定向之前,我想运行一个函数,它根据用户在特定字段中输入的内容来改变服务器变量。
这是可行的,当然没有附加功能。
app.post(
'/login',
checkNotAuthenticated,
passport.authenticate('local',
{
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
}
)
)
我想要那样的东西。 console.log 命令有效,但 passport.authenticate 无效。
app.post(
'/login',
checkNotAuthenticated, (req, res) => {
console.log("that works");
passport.authenticate('local',
{
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
}
)}
)
passport.authenticate
returns 具有签名 (req, res, next)
的函数,即中间件。
module.exports = function authenticate(passport, name, options, callback) {
// ...
return function authenticate(req, res, next) {
// ...
};
// ...
};
您需要调用该函数。
app.post(
'/login',
checkNotAuthenticated,
(req, res, next) => {
console.log("that works");
const authFunc = passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
});
authFunc(req, res, next);
)}
)