我正在尝试使用PKCE流进行用户身份验证。
使用以下模式成功重定向后:
https://twitter.com/i/oauth2/authorize?response_type=code&client_id=M1M5R3BMVy13QmpScXkzTUt5OE46MTpjaQ&redirect_uri=https://www.example.com&scope=tweet.read%20users.read%20follows.read%20offline.access&state=state&code_challenge=challenge&code_challenge_method=plain
我得到了代码,但当我尝试获取访问令牌时,以下请求失败:
curl --location --request POST 'https://api.twitter.com/2/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic <base 64 encode>' \
--data-urlencode 'code=<code received>' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'redirect_uri=<my_redirect>' \
--data-urlencode 'code_verifier=challenge' \
--data-urlencode 'client_id=<my_client_id>'
错误消息为{"error":"unauthorized_client","error_description":"Missing valid authorization header"}
我尝试使用这里描述的所有方法来处理Basic header,但没有一个成功:
https://twittercommunity.com/t/how-to-generate-a-bear-token-for-api-2-authentication/171837
谢谢!
2条答案
按热度按时间z9gpfhce1#
在您的应用程序〉用户身份验证设置〉点击编辑OAuth 1。0a和OAuth 2。0〉打开OAuth 1。0a和OAuth 2。0并将应用程序类型更改为“单页应用程序”,该应用程序应是公共客户端。
093gszye2#
我有这个确切的问题,并花了几个小时试图诊断它。我最终删除了我在Twitter开发者平台中创建的应用程序,并创建了一个新的应用程序,以完全相同的方式生成
CLIENT_ID
和CLIENT_SECRET
,现在它可以工作了。可能是Twitter上的一个bug?