我有一个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 –