swift: автоматический выход через определенное время - PullRequest
0 голосов
/ 20 февраля 2020

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

При входе пользователя в систему генерируется токен доступа, который используется для сетевых вызовов.

Требование: через 20 минут после создания этого токена истекает срок действия токена, и пользователю необходимо снова войти в систему, чтобы продолжить использование приложения.

Как можно ли добиться этой функции, чтобы через 20 минут пользователь получал выход из приложения и перенаправлялся на домашнюю страницу.

Если пользователь использует приложение даже через 20 минут после входа в систему? Как сохранить токен доступа в приложении и удалить его после выхода из системы.

Я видел пару ответов в Задаче c, но я хочу получить ответ быстро.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Добро пожаловать в переполнение стека

Краткий ответ

Создайте таймер в делегате приложения для отслеживания истечения срока действия токена. И при необходимости сбросьте таймер.

Длинный ответ TLDR;

Чтобы реализовать функцию, как вы объяснили, нам нужно

  • Отслеживать токен доступа срок действия только в приложении делегат.

  • Запустите таймер на 20 минут, когда пользователь входит в систему из AppDelegate.

  • Перед выполнением любых вызовов API обращайтесь к токену из делегата приложения (внутренне вы можете сохранить в любом безопасном методе, например, KeyChain),
  • При доступе к токену из приложения Делегат проверяет, истек ли таймер. Если это так, представьте свой экран входа в систему в окне.
  • Если его нет, выполните API-вызов и позвольте пользователю выполнять задачи.

Преимущество этого метода

Если вы уверены срок действия этого токена истекает через 20 минут, а затем без каких-либо вызовов API мы можем выйти из приложения.

0 голосов
/ 20 февраля 2020

Сохраните свой токен доступа в цепочке для ключей и отметьте его время.

Напишите функцию, которая получает вам токен API из цепочки для ключей. Каждый раз, когда эта функция обращается к токену доступа, она должна проверять, если ее метка времени старше 20 минут, она должна возвращать ноль, а затем вы должны перевести пользователя на домашний экран.

...