2017-08-12 56 views
0

我有一個Node JS應用程序,它使用Twitter API(使用OAuth 1.0a)對用戶進行身份驗證並代表使用提供的用戶的用戶發佈推文訪問令牌。如何通過Twitter REST API將Twitter授予用戶訪問令牌給應用程序

我還想爲我的應用程序的用戶提供一種方式,通過撤銷之前提供的訪問令牌來「斷開」與Twitter的連接,以便用戶在下次希望通過我的應用程序訪問它時必須登錄到Twitter 。

我也有一個類似Facebook的集成(通過OAuth 2),與Facebook做法的合法方式是通過/ me/permissions路由的DELETE請求。對於Twitter,我找到了一種方法(在本頁中提到:https://dev.twitter.com/oauth/reference/post/oauth2/invalidate/token)使訪問令牌無效,但似乎失敗並顯示「無法驗證憑據」錯誤。我知道我提供了正確的憑據,因爲如果我只是發佈具有相同憑證的推文,而不是發佈到該終端,我就可以成功完成該任務。

有一點需要注意:我發現Twitter不支持OAuth2進行用戶認證,這就是爲什麼我使用OAuth 1進行Twitter的原因。不知道這是否與此有關。從我的應用程序

示例代碼,試圖撤銷令牌:

var logout = function(userAccessToken, userAccessTokenSecret, done) { 
    oauth.post(
     "https://api.twitter.com/oauth2/invalidate_token", 
     userAccessToken, userAccessTokenSecret, 
     {"access_token": userAccessToken}, 
     "application/json", 
     function(error, data) { 
     console.log("response from Twitter: error = " + JSON.stringify(error) + ", data = " + JSON.stringify(data)); 
     done(error, data); 
     } 
    ); 
} 
+0

我敢肯定,這隻適用於持票人令牌,你通過https://dev.twitter.com/oauth/reference/post/oauth2/token –

回答

1

看來,因爲這現在是不可能的。您提供的路線只有應用程序僅令牌可以通過

https://dev.twitter.com/oauth/reference/post/oauth2/token

得到據FAQ部分令牌可以由用戶自己在其設置中撤銷。

而且我發現這個職位在Twitter社區,要求基本相同的問題,你做的:

https://twittercommunity.com/t/actively-revoking-oauth-access-tokens/1505

目前還沒有任何辦法對申請自願撤銷訪問令牌的用戶誰已授予應用程序訪問權限。如果您確定服務中的某段時間不活動,意味着用戶不再使用您的應用程序,那麼您的最佳途徑是從記錄中刪除訪問令牌。如果用戶再次回來,您可以爲他們重新協商。

所以在我看來,最簡單的方法就是刪除你側面的標記。

相關問題