Сеансы Python Flask: как сохранить сеанс постоянным после аутентификации для использования в других методах - PullRequest
0 голосов
/ 30 января 2019

Я изо всех сил пытаюсь понять, как сохраняется сеанс Flask, даже когда используется

session.permanent = True

Конечная цель: я хочу вызвать отдельный метод (запрос POST) для отправки некоторых данных.Когда я пытаюсь print(session) в отдельном методе, он печатает <SecureCookieSession {}>

@app.route('/', defaults={'path': ''}, methods=['GET', 'POST'])
@app.route('/<path:path>')
@cross_origin()
def index(path):
  if request.form.get('id_token'):
    id_token = request.form.get('id_token')
    # get the kid key from the id_token
    kid = get_kid(id_token)
    # get the public_key from the cert
    public_key = get_cert(kid)

    user_info = jwt.decode(id_token, public_key, audience=app.config.get('OAUTH_CLIENT_ID'), algorithms=['RS256'])
    nt_id = user_info.get('preferred_username').split("@")[0]
    user_email = user_info.get('email')
    session.permanent = True
    session["username"] = nt_id
    session["email"] = user_email
    print("SESSION ----> %s" % session) # shows correctly here
    return "Welcome to my app, %s" % session["username"]
else:
    return redirect("http://localhost:8000/authenticate")

Когда я пытаюсь напечатать session в приведенном ниже методе, ничего там нет.

@app.route('/api/submit_to_tts', methods=['POST'])
@cross_origin()
def submit_to_tts():
  # logic here to do a POST request
  print(session) # prints <SecureCookieSession {}>
  print(session.get('username')) # prints None

Что я здесь пропускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...