node.js - 如何使 Instagram OAuth(或任何 OAuth)始终强制用户登录,即使他们已登录应用程序的网站?

标签 node.js express oauth instagram

我正在构建一个工具,用户希望在应用程序中验证多个 Instagram 帐户。我遇到的问题是,如果用户已经进行了身份验证,并且我再次启动 OAuth 对话,OAuth 会假定我想要已登录用户的访问 token 。

我有一个类似的iOS应用程序,避免这种情况的方法是清除Safari浏览器的所有cookie。

我现在正在使用 instagram-node 模块。

app.get('/authenticateInstagram', function(req, res) {
    res.redirect(ig.get_authorization_url(redirectURI, {
        scope: ['basic', 'public_content', 'likes', 'follower_list', 'relationships'],
        state: 'a state'
    }));
});

app.get('/handleInstagramAuth', function(req, res) {
    ig.authorize_user(req.query.code, redirectURI, function(err, result) {
        if (err) {
            console.log(err.body);
            res.send('Didn\'t work');
        } else {
            console.log('Yay! Access token is ' + result.access_token);
            res.send('You made it!!');
        }
    });
});

因此,当我尝试添加另一个 IG 帐户(现在我已经登录了 Instagram 帐户)时,OAuth 序列不会提示我登录。它假设我是之前登录的用户。

最佳答案

我可以想到以下方法

  1. 如果 Instagram 支持,您可以请求注销端点。退出后即可再次登录
  2. 我不确定 instagram 是否支持 prompt=login 参数。如果是这样,每次通话都会带您进入登录页面。
  3. 我检查了 Instagram 文档,我认为您可以使用客户端(隐式)流程每次登录以获取访问 token 。

关于node.js - 如何使 Instagram OAuth(或任何 OAuth)始终强制用户登录,即使他们已登录应用程序的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45308876/

相关文章:

javascript - AWS Lambda 函数多次处理相同的 dynamodb 流。我错过了什么?

javascript - 使用 async/await 时的 Nodejs : How to avoid nested . then()

express - Webpack 和 Express - 严重依赖警告

oauth - IMAP OAuth token 到期

javascript - OAuth2 - 如何在没有客户端 key 的情况下授权?

javascript - 如何将输入给出的文本存储到 JSON 文件

node.js - 如何跟踪 Mongoose 查询执行时间

node.js - Passport.js deserializeUser 如何解密哈希 session 数据?

javascript - Angular/MEAN.io 中的路由安全漏洞?

rest - PHP REST API 基于密码的 SSL 身份验证的缺点