javascript - 如何在 Node.js 中为 oauth 回调配置路由
问题描述
这在server.js
:
app.get('/auth/google/callback',
passport.authenticate('google', {
failureRedirect: '/login'
}),
(req, res) => {}
);
但以下内容在使用时不会route.js
:
exports.googleCallback = function(req, res, next) {
passport.authenticate('google', { failureRedirect: '/login' });
const handler = function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
};
handler(req, res, next);
};
我有以下内容route.js
:
app.route(path + 'auth/google').get(auth.googleLogin);
发生了什么:第二个代码直接进入/
路径,无需等待 Passport Google 策略完全执行。
如果我删除res.redirect('/');
它不会去任何地方并继续加载。
解决方案
这工作得很好:
exports.googleCallback = function(req, res, next) {
passport.authenticate('google', { failureRedirect: '/login' })(req, res, next);
};
在护照上添加回调方法。
推荐阅读
- java - 在 JPA 中对具有多对多关系的对象执行 NOT IN QUERY
- javascript - 当 CKEditor mangles 时,如何在其中包含带有 HTML 的工具提示
- python - Python Click:如何打印有关使用错误的完整帮助详细信息?
- javascript - 我的函数中的逻辑错误阻止 count++ 工作
- json - Powershell Json 对象操作
- macos - 缩放不适用于 Mac 上 matplotlib 中的 3d 图
- git - 修复在推送提交中被视为已删除而不是重命名的文件
- swagger - ServiceStack Swagger 正文
- java - Hibernate - Tomcat - SQL Server - 连接关闭问题
- python - 在字典中分离键值并在处理值后重新创建字典