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



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

我有一个类似的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文档,我认为您可以使用客户端(隐式(流程每次登录以获取访问令牌。

最新更新