我正在试图弄清楚我是否正在使用正确的API调用来撤销我的应用访问用户Twitter帐户(因此当用户再次尝试使用Twitter登录时,他们必须授予我的应用访问权限而不是不要求登录)
在我的本地应用程序上,我运行了一个服务器,用户可以在其中授予我的应用访问Twitter的权限。我成功使用
获取访问令牌https://api.twitter.com/oauth/request_token
但是当涉及到撤销相同的访问令牌时,我试图使用
https://api.twitter.com/oauth2/invalidate_token
此处描述:https://developer.twitter.com/en/docs/basics/authentication/api-reference/invalidate_token
但似乎使用oauth1来获取access_token和oauth2来使它失效,这似乎很奇怪。我能够发布但我收到的错误是403“无法验证您的凭据”
在invalidate_token调用的描述中,它提到使“OAuth 2 Bearer Token”无效,但获取了我获得“OAuth Request Token”的令牌。
可以使用OAuth2进行身份验证,以使使用OAuth1获取的令牌无效吗?或者我错过了什么?
服务器正在运行PHP并且调用了curl。
答案 0 :(得分:0)
您无法使用Twitter API以编程方式撤消OAuth1令牌,除非您正在使用Bearer Tokens。在您的情况下,您不是使用Bearer令牌,而是使用标准OAuth1请求和访问令牌。
您可以将用户定向到需要用户重新批准该应用程序的GET oauth/authorize
端点,而不是撤消访问权限:
https://developer.twitter.com/en/docs/basics/authentication/api-reference/authorize
但是,请仔细考虑一下为什么要这样做 - 通常,用户一次授予您的应用程序权限,然后通过他们的Twitter设置自行撤消它,如下所述:
https://help.twitter.com/en/managing-your-account/connect-or-revoke-access-to-third-party-apps