【问题标题】:Flask session not persisting on chromium browser, session cookie is not created [duplicate]Flask 会话未在 chromium 浏览器上持续存在,未创建会话 cookie [重复]
【发布时间】:2017-04-19 15:11:17
【问题描述】:

跟随here的这篇教程:

@app.route('/')
def index():
    if 'username' in session:
        return 'Logged in as %s' % escape(session['username'])
    return 'You are not logged in'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return '''
        <form action="" method="post">
            <p><input type=text name=username>
            <p><input type=submit value=Login>
        </form>
    '''

我似乎无法在 Chromium 浏览器上使用它。似乎会话没有被保存,即使使用session.modified = True,它也不会持续到index 路由。换句话说 - 会话 cookie 没有被创建。

铬版本:54.0.2840.71
在 Firefox 和 Qutebrowser 浏览器上测试。

【问题讨论】:

  • 要找出它的铬方面的问题,检查铬浏览器的开发者控制台( F12 )和网络选项卡;检查响应头是否包含 atlease "Set-Cookie"
  • 在 MacOS El Capitan 上用 Chrome 54.0.2840.98 和在 Linux(Ubuntu 16.04) 上用 chromium 56.0.2924.14 (chrome-dev) 测试没有任何问题。您的 chrome 上可能有关于会话的奇怪设置或尝试更新 chromium
  • 您还定义了其他路线吗?它可能与 favicon.ico 有关。见stackoverflow.com/questions/2953536/…

标签: python session cookies flask


【解决方案1】:

在这篇文章中添加一些内容为时已晚?我希望不会。

我已经解决了这个问题一个星期,发现可以使用 IP 在 Chrome 浏览器中创建会话。

我的配置文件有这些配置:

    SERVER_NAME = '192.168.0.6:5000'
    SESSION_COOKIE_NAME = '192.168.0.6:5000'
    SESSION_COOKIE_DOMAIN = '192.168.0.6:5000'

它允许我使用本地虚拟机,并且 cookie 在 Chrome 上完美运行,无需本地 FQDN。

在我的情况下,问题在于 Chrome 和 Chromium 没有创建 cookie 来连接服务器会话。

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 2018-03-13
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 2022-08-21
    • 2014-09-07
    • 2019-06-08
    • 2015-01-28
    相关资源
    最近更新 更多