尝试使用 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 。而且我不知道如何设置它。
任何帮助表示赞赏。 干杯,凯文
你看到一些特殊的代币了吗?我没有使用 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) 的地方;
你也可以尝试在授权中添加这个特殊令牌)))