我有一個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);
}
);
}
我敢肯定,這隻適用於持票人令牌,你通過https://dev.twitter.com/oauth/reference/post/oauth2/token –