2013-05-28 120 views
1

我已经使用Express框架和PassportJS支持(在node.js之上)创建了演示应用程序。我需要使用Wargaming.net帐户实现OpenID身份验证(OpenID url为http://ru.wargaming.net/id/)。但Passport模块返回“缺少OpenID标识符”的Flash消息。请帮助我在代码中查找错误。缺少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

问题是在获取配置文件。我仍然不知道什么是错的。所以我删除了询问配置文件并将URL“/ auth/openid/return”更改为GET请求。所以现在代码工作正常。