我正在构建一个工具,用户希望在应用程序中验证多个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 序列不会提示我登录。它假定我是以前登录的用户。
我可以想到以下方法
- 如果Instagram支持,您可以请求注销端点。注销后,您可以再次登录
- 我不确定Instagram是否支持
prompt=login
参数。如果是这样,它应该带您进入每个呼叫的登录页面。 - 我检查了Instagram文档,我认为您可以使用客户端(隐式(流程每次登录以获取访问令牌。