使用django-allauth和django-rest-auth实现Facebook注册失败,提示Incorrect value错误
Facebook社交认证返回"Incorrect value"错误排查
问题场景
使用django-allauth和django-rest-auth实现Facebook社交认证,视图代码如下:
from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter from allauth.socialaccount.providers.oauth2.client import OAuth2Client class FacebookLoginView(SocialLoginView): adapter_class = FacebookOAuth2Adapter client_class = OAuth2Client
向该视图发送携带access_token的POST请求时,返回错误:
{"non_field_errors":["Incorrect value"]}
可能的原因及解决方法
Access Token无效或格式错误
确认access_token是否正确生成、未过期,且属于你的Facebook应用。检查请求参数名是否为access_token,避免拼写错误(如accessToken)。Facebook应用配置不匹配
- 登录Django后台,检查
Social Application中的App ID、App Secret是否与Facebook开发者后台的应用信息完全一致; - 确保Facebook开发者后台的
Valid OAuth Redirect URIs包含你的应用回调地址,且与Django配置的站点域名一致; - 确认应用已开启认证所需的权限(如
email)。
- 登录Django后台,检查
视图缺少回调地址配置
OAuth2Client需要指定回调地址,在视图中添加callback_url字段:class FacebookLoginView(SocialLoginView): adapter_class = FacebookOAuth2Adapter client_class = OAuth2Client callback_url = "http://你的域名/accounts/facebook/login/callback/"该地址需与Facebook后台配置的回调地址完全一致。
请求数据格式错误
确保POST请求的Content-Type为application/json或application/x-www-form-urlencoded,且请求体中的access_token无多余空格或特殊字符。依赖库版本不兼容
检查django-allauth和django-rest-auth的版本是否匹配,尝试升级至两者的最新稳定版。
内容的提问来源于stack exchange,提问作者umair mehmood
相关产品推荐
相关产品推荐

