You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twitter API访问令牌撤销:API调用正确性验证咨询

撤销Twitter应用访问权限的正确API调用指南

看起来你已经走通了OAuth授权的第一步,现在要搞定令牌撤销的环节对吧?其实Twitter专门提供了OAuth 1.0a的撤销令牌API,能确保用户下次登录必须重新授权,下面给你拆解具体操作:

核心API端点

你需要调用的是POST请求:https://api.twitter.com/oauth/invalidate_token

调用关键要求

这个请求必须和你获取access_token时一样,用OAuth 1.0a签名方式,需要带上这些参数:

  • 你的应用consumer_key和consumer_secret
  • 要撤销的用户最终access_token(注意不是request_token)
  • 该access_token对应的token_secret

重要注意事项

  • 必须用POST请求,GET请求会直接被拒绝
  • 签名时一定要用用户的access_token,别搞错成request_token了
  • 调用成功后,Twitter会返回JSON格式的失效令牌信息,不用保存,直接忽略就行
  • 别忘了同步删除你本地数据库里该用户对应的Twitter令牌记录,避免后续代码误用失效令牌

伪代码示例(Python)

如果用requests-oauthlib库,代码大概是这样:

from requests_oauthlib import OAuth1Session

# 替换成你自己的应用信息和用户令牌
consumer_key = "你的应用API密钥"
consumer_secret = "你的应用API密钥密钥"
user_access_token = "要撤销的用户访问令牌"
user_token_secret = "对应访问令牌的密钥"

# 初始化OAuth会话
twitter_session = OAuth1Session(
    consumer_key,
    client_secret=consumer_secret,
    resource_owner_key=user_access_token,
    resource_owner_secret=user_token_secret
)

# 发送撤销请求
response = twitter_session.post("https://api.twitter.com/oauth/invalidate_token")

# 验证结果
if response.status_code == 200:
    print("令牌已成功撤销,用户下次登录需重新授权")
    # 这里记得删除本地数据库中该用户的Twitter令牌记录
else:
    print(f"撤销失败:状态码{response.status_code},响应内容:{response.text}")

验证撤销是否生效

撤销后,你可以用那个失效的access_token调用一个需要授权的API(比如GET https://api.twitter.com/1.1/account/verify_credentials.json),如果返回401 Unauthorized错误,就说明撤销成功了——此时用户再登录你的应用,就会被引导到Twitter的授权页面,必须重新确认授予权限才能登录。

内容的提问来源于stack exchange,提问作者ChadH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:18:40