我创建了具有Express框架和PassportJS支持的演示应用程序(在node.js之上)。我需要使用Wargaming.net帐户实现OpenID身份验证(OpenID网址为http://ru.wargaming.net/id/)。但Passport模块返回闪存消息“缺少OpenID标识符”。请帮助我在代码中找到错误。
passport.use(new OpenIDStrategy({
returnURL: 'http://localhost:3000/auth/openid/return',
realm: "http://localhost:3000/",
profile: true
},
function(identifier, profile, done) {
User.findByOpenID(identifier, function (err, user) {
done(err, user);
});
}
));
app.post('/auth/openid', passport.authenticate('openid'));
app.post('/auth/openid/return',
passport.authenticate('openid', { successRedirect: '/',
failureRedirect: '/login',
failureFlash: true }));
答案 0 :(得分:0)
问题在于获取个人资料。我还是不知道出了什么问题。所以我删除了询问配置文件并将URL“/ auth / openid / return”更改为GET请求。所以代码现在工作正常。