Почему cookie-файл сеанса работает при обслуживании с домена, а не при использовании IP-адреса?

У меня есть приложение Flask с сессиями, которое хорошо работает на моей локальной машине для разработки. Однако, когда я пытаюсь развернуть его на сервере Amazon, сеансы не работают.

Более конкретно, сессионный cookie не установлен. Однако я могу установить нормальные куки. Я удостоверился, что у меня есть статический безопасный ключ, поскольку другие указали, что это может быть проблемой. Разница лишь в том, как настроен сервер. Во время разработки я использую

app.run()

бежать локально. При развертывании я использую

app.config['SERVER_NAME'] = '12.34.56.78'  # <-- insert a "real" IP
app.run(host='0.0.0.0', port=80)

Я подозреваю, что проблема может быть в вышеупомянутом, но я не совсем уверен.

Сессияделает похоже работает на Firefox, но не на Chrome.

Следующее небольшое приложение демонстрирует проблему с различиями в конфигурации внизу:

from flask import Flask, make_response, request, session

app = Flask(__name__)
app.secret_key = 'secretKey'

# this is to verify that cookies can be set
@app.route('/setcookie')
def set_cookie():
    response = make_response('Cookie set')
    response.set_cookie('cookie name', 'cookie value')
    return response

@app.route('/getcookie')
def get_cookie():
    if 'cookie name' in request.cookies:
        return 'Cookie found. Its value is %s.' % request.cookies['cookie name']
    else:
       return 'Cookie not found'

# this is to check if sessions work
@app.route('/setsession')
def set_session():
    session['session name'] = 'session value'
    return 'Session set'

@app.route('/getsession')
def get_session():
    if 'session name' in session:
        return 'Session value is %s.' % session['session name']
    else:
        return 'Session value not found'

if __name__ == '__main__':
    app.debug = True

    # windows, local development
    #app.run()  

    # Ubuntu
    app.config['SERVER_NAME'] = '12.34.56.78'  # <-- insert a "real" IP
    app.run(host='0.0.0.0', port=80)

Ответы на вопрос(3)

Ваш ответ на вопрос