在Twitter上验证OAuth令牌

时间:2011-05-27 16:42:51

标签: twitter oauth verification

在用户通过oauth进程后,我将来自Twitter的oauth信息存储在Flash Cookie中。 Twitter表示,如果Twitter或用户撤销该应用的访问权限,此令牌应该过期。

我是否可以拨打Twitter以验证我的存储令牌是否已被撤销?

4 个答案:

答案 0 :(得分:17)

如果访问令牌过期,则所有需要身份验证的API方法都将失败。但是,验证用户是谁以及访问令牌仍然有效的具体方法是GET account/verify_credentials

答案 1 :(得分:3)

这个问题可能很旧,但这个问题适合谷歌(像我一样)。

以下是使用Hammock对twitter的调用:

    RestClient rc = new RestClient {Method = WebMethod.Get};
            RestRequest rr = new RestRequest();
            rr.Path = "https://api.twitter.com/1/account/verify_credentials.json";
            rc.Credentials = new OAuthCredentials
                                 {
                                     ConsumerKey = /* put your key here */,
                                     ConsumerSecret = /* put your secret here */,
                                     Token = /* user access token */,
                                     TokenSecret = /* user access secret */,
                                     Type = OAuthType.AccessToken
                                 };
            rc.BeginRequest(rr, IsTokenValid);

以下是回复:

    public void IsTokenValid(RestRequest request, RestResponse response, object userState)
    {
        if(response.StatusCode == HttpStatusCode.OK)
        {
            var user = userState;
            Helper.SaveSetting(Constants.TwitterAccess, user);
        }
        else
        {
            Dispatcher.BeginInvoke(() => MessageBox.Show("This application is no longer authenticated "))
        }
    }

我总是借用SO的解决方案,这是我第一次尝试回馈,尽管这个问题已经很晚了。

答案 2 :(得分:1)

手动调试时:

curl \
   --insecure https://api.twitter.com/1/account/verify_credentials.json?oauth_access_token=YOUR_TOKEN

答案 3 :(得分:1)

我正在使用TwitterOAuth API,这是基于接受答案的代码。

$connection     =   new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $twitter_oauth_token, $twitter_oauth_secret); 
$content        =   $connection->get("account/verify_credentials");                        
if($connection->getLastHttpCode() == 200):
    // Connection works fine.
else:
    // Not working
endif;