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

Dre*_*w H 5 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);
});
Run Code Online (Sandbox Code Playgroud)

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

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

Mat*_*tis 6

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

我的问题可以追溯到Twitter上的应用程序设置.当我访问Twitter Dev网站并开始仔细比较我为DEV和PROD系统所做的选择时,我注意到我的应用程序的"设置"选项卡上有一个区别,其中包含"允许此应用程序用于登录的复选框"在Twitter的"复选框选中我的DEV但是我的PROD系统.

应用程序设置选项卡上复选框下的小字体显示:

启用后,您的应用程序可用于"使用Twitter登录".禁用后,您的应用程序将无法使用/ oauth/authenticate,而对它的任何请求都会将用户重定向到/ oauth/authorize

授权与验证之间的区别在术语上并不明确,但授权每次都需要确认,而验证"记住"用户的选择.

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