使用Python Social Auth实现Apple登录时出现AuthStateMissing状态丢失问题
Django Apple ID登录出现
AuthStateMissing: Session value state missing异常排查 已在正常运行Facebook和Twitter登录的Django项目中添加Apple ID登录功能,从应用跳转至Apple完成登录后,返回/player/social/complete/{backend}/路径时,触发AuthStateMissing: Session value state missing异常。
当前配置情况
- 会话采用
signed_cookies存储 SESSION_COOKIE_SAMESITE先后设为"Lax"和"None",无改善- Apple ID相关配置:
SOCIAL_AUTH_APPLE_ID_SCOPE = ["email", "name"] SOCIAL_AUTH_APPLE_ID_EMAIL_AS_USERNAME = ( True # 用邮箱作为用户名 )
已尝试的排查配置
以下配置均未解决问题:
from django.conf import settings settings.SOCIAL_AUTH_REDIRECT_IS_HTTPS # 返回:True settings.SOCIAL_AUTH_FIELDS_STORED_IN_SESSION # 返回:['state'] settings.SESSION_COOKIE_SECURE # 返回:False settings.SESSION_ENGINE # 返回:'django.contrib.sessions.backends.signed_cookies'
Sentry捕获的关键数据
在do_complete()方法中获取到以下请求数据:
data = { code: "ce37e855726d1438c8a17c4bbe271b14f.0.rtxw.TA3pbBjAnNOHmNWy98BVqA", state: "HXThIRc2ZVFiysClAMyNhgcWKfuoPr4e" }
目前不清楚该state值应在何处写入会话,也无法定位会话中无法取回该值的原因。
内容的提问来源于stack exchange,提问作者markwalker_
相关产品推荐
相关产品推荐

