Поддержание сеанса пользователя локально на устройстве - PullRequest
0 голосов
/ 20 сентября 2019

Я создаю свое первое приложение-флаттер, приложение будет работать в автономном режиме, но будет иметь функцию локального входа.Администратор сможет выполнять разные задачи после входа в систему. Я хотел создать сеанс, который действителен в течение часа.

В идеале пользователь войдет в систему один раз, затем он сможет получить доступ к панели инструментов без повторного ввода имени пользователя и пароля в течение следующего часа.

Я сделал большую частьвещи, но я скучаю или делаю что-то не так.

Вот что я сделал:

  1. Создание токена сеанса с использованием функции Random при входе пользователя в систему
  2. Токен хранится в базе данных SQLite,вместе с другой информацией (user_id, login_time, token_valid_time) [token_valid_time = login_time + час]
  3. Токен также хранится в общих настройках.
  4. Имеет функцию isValidSession, которая выполняет функциюследующие задачи:
    1. получить токен сеанса из общих настроек
    2. выполнить поиск в базе данных для токена
    3. extract token_valid_time и сравнить его с текущим временем, возвращаемым
    4. результат, основанный на текущем времени
  5. В main.dart файле я вызываю isValidSession()
  6. , если сеанс действителен, тогда я вызываю HomePage(), и если он не действителензатем вызывается LoginPage().

Функция входа в систему работает нормально, но когда приложение закрывается и открывается снова;он показывает LoginPage() вместо HomePage().

Скажите, пожалуйста, где ошибка и как ее исправить?Кроме того, было бы замечательно, если бы кто-то сказал мне, если это правильный подход ИЛИ его можно улучшить.

ПРИМЕЧАНИЕ: я не публиковал код, потому что он включает в себя различные файлы и много кода.Просмотр и понимание могут занять много времени, поэтому я объяснил все в псевдокоде.

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