【发布时间】:2018-11-06 19:59:27
【问题描述】:
我有一篇这样的帖子
app.post('/auth', passport.initialize(), passport.authenticate('local', { session: false,scope: [] }), serialize, generateToken, respond);
这工作正常。
现在我将上面的帖子作为一个函数并从不同的页面调用
accesstokenController.auth = function(req, res) {
console.log('Here auth called');
passport.initialize(), passport.authenticate(
'local', {
session: false,
scope: []
}), serialize, generateToken, respond
};
并从不同的路由页面调用此方法。
这不起作用意味着没有调用 passport.initialize() 或 passport.authenticate
路由器调用方式
var oauth = require("../oauth/accesstoken");
router.post('/auth', function(req, res) {
oauth.auth(req, res);
});
怎么了
谢谢
【问题讨论】:
-
, serialize, generateToken, respond看起来很奇怪,在您的第一个代码中,它们是额外的路由处理程序,在您的新代码中,您对它们什么都不做。 -
如何让它们相似
-
调用
passport.initialize()你可以这样做:passport.initialize()(req, res, function(){ console.log('next')}),但这可能会变得混乱,另一个想法是让 auth 像accesstokenController.auth = [passport.initialize(), passport.au...];这样的数组 -
但是它会起作用吗 router.post('/auth', function(req, res) { oauth.auth(req, res); });
-
我是从其他路由文件调用这个方法
标签: node.js ajax express authentication passport.js