Как обновить сеанс webapp2_extras в приложении на основе GAE - PullRequest
0 голосов
/ 23 января 2019

У меня есть два вопроса:

  1. Первый - это хорошая практика - обновлять сеанс (часто) после его создания?Если нет, то каковы возможные проблемы, которые могут возникнуть?

  2. Я работаю над приложением на основе GAE и использую модель аутентификации webapp2_extras, предоставленную GAE для аутентификации.Я пытаюсь обновить значение атрибута сеанса (после его создания), но, похоже, оно не работает.

Точный фрагмент кода:

updates = {'fullname': 'sdsdsdsdsd'}
self.auth.set_session_data(session, **updates)

но выдает ошибку, которая:

TypeError: set_cookie() got an unexpected keyword argument 'fullname'

Согласно документации библиотеки, она должна работать.Как написано, что:

def set_session_data(self, data, **session_args):
    """Sets the session data as a list.

    :param data:
        Deserialized session data.
    :param session_args:
        Extra arguments for the session.
    """
    data = self.store.serialize_session(data)
    if data is not None:
        self.session['_user'] = data
        self.session.container.session_args.update(session_args)

Может кто-нибудь, пожалуйста, помогите мне здесь?Кроме того, объясняет, должен ли я обновлять сессию или нет?У меня есть сценарий, в котором я буду этим заниматься, но это не очень хорошо.Я думаю, что сессия не должна обновляться вручную после ее создания.

1 Ответ

0 голосов
/ 24 января 2019

Это должно быть примерно так:

self.auth.set_session_data(updates)

но это уничтожит все ключи, которые уже есть (например, 'user_id', который необходим для работы аутентификации), так что, возможно, сделайте это вместо:

session_data = self.auth.get_session_data()
session_data['fullname'] = 'sdsdsdsdsd'
self.auth.set_session_data(session_data)

Я не знаю, что это за переменная session, которую вы пытались передать, но set_session_data() только набор self.session

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