【问题标题】:django session lost when redirected from facebook oauth从 facebook oauth 重定向时,django 会话丢失
【发布时间】:2016-08-03 15:19:43
【问题描述】:

我有一个实现 Facebook oauth 登录的 django 应用程序。

在将尚未通过身份验证的 AnonymousUser 发送到 Facebook 的 oauth2 之前,我在 request.session 中存储了一个令牌。

一旦用户通过 facebook 登录并被重定向回我们的站点,django 会话就会丢失。已生成新的会话密钥,旧的会话密钥已从 db 会话存储中删除,并且会话中没有数据(因此缺少原始会话令牌)。我不知道为什么会发生这种情况,需要获取原始令牌?

我在 settings.py 中有以下内容

SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_COOKIE_DOMAIN = '.mysite.com'
SESSION_COOKIE_SECURE = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = False

【问题讨论】:

  • 为了调试,请尝试将 SESSION_ENGINE 更改为 "django.contrib.sessions.backends.signed_cookies"。这能解决问题吗?

标签: django facebook session authentication oauth-2.0


【解决方案1】:

会话 cookie 必须设置为 false。如果是真的,你只能在 https 连接中存储会话 cookie,并且我假设你的测试环境不使用 https

【讨论】:

    猜你喜欢
    • 2014-03-31
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多