我正在构建一个工具,用户希望在应用程序中验证多个 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 序列不会提示我登录。它假设我是之前登录的用户。
最佳答案
我可以想到以下方法
- 如果 Instagram 支持,您可以请求注销端点。退出后即可再次登录
- 我不确定 instagram 是否支持
prompt=login
参数。如果是这样,每次通话都会带您进入登录页面。 - 我检查了 Instagram 文档,我认为您可以使用客户端(隐式)流程每次登录以获取访问 token 。
关于node.js - 如何使 Instagram OAuth(或任何 OAuth)始终强制用户登录,即使他们已登录应用程序的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45308876/