2017-07-25 16 views
0

我正在構建一個工具,用戶想要在應用程序中驗證多個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的順序進行登錄。它假定我是以前登錄的用戶。

回答

0

我能想到下面的方法

  1. 您可以註銷終點,如果Instagram的支持它的請求。一旦註銷,您可以再次登錄
  2. 我不確定instagram是否支持prompt=login參數。如果是這樣,它應該帶你到每個電話的登錄頁面。
  3. 我查了Instagram的文檔,我想你可以使用客戶端(隱式)流來登錄每次獲得訪問令牌。
相關問題