Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 未调用NodeJS Passport函数_Node.js_Passport.js - Fatal编程技术网

Node.js 未调用NodeJS Passport函数

Node.js 未调用NodeJS Passport函数,node.js,passport.js,Node.js,Passport.js,我正在尝试登录Facebook var passport = require('passport'); var express = require('express'); var FacebookStrategy = require('passport-facebook').Strategy; var bodyParser = require('body-parser'); var app = express(); passport.use(new FacebookStrategy({

我正在尝试登录Facebook

var passport = require('passport');
var express = require('express');
var FacebookStrategy = require('passport-facebook').Strategy;
var bodyParser = require('body-parser');
var app = express();

passport.use(new FacebookStrategy({
        clientID: '-',
        clientSecret: '-',
        callbackURL: "http://localhost:3000"
    },
    function(accessToken, refreshToken, profile, done) {
        console.log("Token:", accessToken);
        console.log("Refresh token:", refreshToken);
        done(null);
    }
));

app.get('/auth/facebook',
    bodyParser.urlencoded({ extended: true }),
    passport.authenticate('facebook'));

app.get('/', function (req, res) {
    res.send("Helo");
});

app.listen(3000);
但是为什么我从来没有从FacebookStrategy中的函数中获取控制台日志呢?
登录工作正常,我被重定向到callbackURL,但该函数看起来甚至没有被调用

在使用其
身份验证
策略之前,您需要
初始化

从Passport Documantation本身:

在基于ConnectExpress的应用程序中,passport.initialize() 需要中间件来初始化Passport。如果你的申请 使用持久登录会话passport.session()中间件必须 也可以使用

请注意,启用会话支持是完全可选的,尽管它是 建议用于大多数应用程序。如果启用,请确保使用 express.session()在passport.session()之前,以确保登录 会话已按正确的顺序恢复

passport.use之前添加这些行(新FacebookStrategy({…})

仔细阅读以便更好地理解它

不要忘记导入所需的
节点模块

var cookieParser = require('cookie-parser');
var expressSession = require('express-session');

希望这有帮助!

您将被重定向到
callbackURL
。但这是否意味着请求成功,或者是同一个URL用于失败?您是否必须查看请求正文或其他内容以查看它是否成功?
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');