django-allauth twitter oauth2 缺少有效授权标头

问题描述 投票:0回答:1

尝试使用 OAuth2 为 Twitter 使用 django-allauth 设置 Django 4.2 应用程序。

用户会看到带有正确徽标和帐户名的 Twitter 授权页面,但在用户单击“授权应用程序”按钮后,会显示以下消息:

详细信息:未知,错误:检索访问令牌时出错:b'{"error":"unauthorized_client","error_description":"Missing valid authorization header"}'

关于如何修复缺少有效授权标头的任何想法?

包版本为: 姜戈 4.2 django-allauth 0.54.0

settings.py 安装的应用程序 'allauth.socialaccount.providers.twitter_oauth2',

我认为 Twitter API 中的设置已正确设置,因为此 Twitter 应用已成功用于非 Django 操作(收集、推文等)。

我还仔细检查了标准的回调 url https://domain/accounts/twitter_oauth2/login/callback/

Twitter 文档 https://developer.twitter.com/en/docs/authentication/oauth-2-0/user-access-token 对于机密客户端(这是一个简单的网络应用程序)来说,标头应该具有 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

我认为来自 Twitter 的错误消息是说请求没有 Authorization: Basic info 。而且我不知道如何设置它。

任何帮助表示赞赏。 干杯,凯文

django twitter
1个回答
0
投票

你看到一些特殊的代币了吗?我没有使用 Twitter 身份验证(当我尝试注册我的号码时我已经死了)但是当你使用谷歌添加身份验证时你需要在 settings.py 中添加特殊标记

 'google': {
        'SCOPE': [
            'profile', 
            'email'
        ],
        'AUTH_PARAMS': {'access_type': 'online'},
        'SOCIALACCOUNT_QUERY_EMAIL': True,
        'APP': {
            'client_id': os.environ.get('GOOGLE_CLIENT_ID'),
            'secret': os.environ.get('GOOGLE_SECRET'),
            'key': ''
        }
    },}

它们位于名称为 ~crediatials 或 apis & services(google) 的地方;

你也可以尝试在授权中添加这个特殊令牌)))

© www.soinside.com 2019 - 2024. All rights reserved.