使用passport.js twitter登录重新登录用户

时间:2013-05-19 20:19:37

标签: node.js twitter-oauth passport.js

在护照上我有Twitter身份验证。一切都很好登录明智。我有这个代码

app.get('/auth/twitter', function (req, res) {
    if (req.user) {
        return res.redirect('/');
    }
    return passport.authenticate('twitter')(req, res);
});

因此,如果用户已经使用Twitter登录我的网站,它只会重定向回来(最终可能会发送消息)。一旦他们退出网站并再次点击Twitter登录,他们就会再次访问Twitter授权应用页面。它不应该。当我查看其他网站时,它永远不会要求我再次授权该应用程序。如果我查看我的推特配置文件的授权应用程序部分,我会看到我正在开发的应用程序。

为什么我的应用程序在我已经提交时仍继续要求授权?我该怎么改变这个(我在db中存储令牌和token_secret)?谢谢你的帮助。

1 个答案:

答案 0 :(得分:6)

我最近在我的开发系统中遇到了同样的问题,但没有在生产中。

我的问题可以追溯到Twitter上的应用程序设置。当我去Twitter Dev站点并开始仔细比较我为DEV和PROD系统所做的选择时,我注意到我的应用程序的“设置”选项卡上有一个区别,其中“允许此应用程序用于使用Twitter登录“为我的DEV选中,但我的PROD系统

应用设置标签上的复选框下面的小字幕显示:

  

启用后,您的应用程序可用于“使用Twitter登录”。禁用后,您的应用程序将无法使用/ oauth / authenticate,而对它的任何请求将改为将用户重定向到/ oauth / authorize

术语不清楚authorize vs authenticate之间的区别,但授权每次都需要确认,而验证会“记住”用户的选择。

在我做了这个单一更改之后,每次我通过Twitter测试登录时,我的DEV系统都停止询问我与授权相关的确认...