mattedev
@mattedev
web developer

Как хранить сессию в мобильном приложении?

привет. Есть сервис, написаный на laravel. Есть rest api. Надо сделать теперь мобильное приложение, с аутентификацией, и конечно после успешной авторизации доступ к личному кабинету. Приложение думаю писать с помощью electronjs. Но как и где хранить сессию в мобильном приложении, как контролировать права доступа?
  • Вопрос задан
  • 1773 просмотра
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Не важно на чем Вы пишите и как (PHP, rest/не-rest и т.д.): схема - везде одна.

Про сессию:
1. Сервер создаёт идентификатор сессии и всегда указывает его при ответе на каждый запрос клиента.
2. Клиент использует этот идентификатор (обычно хранит в куках браузера) при каждом последующем запросе.
3. Если сервер в ответе указал НОВЫЙ идентификатор сессии, клиент - должен использовать новый.

Про токен:
Токен объединяет в себе авторизацию и сессию с помощью операции хэширования.
1. После получения идентификатора сессии от сервера, клиент отправляет хешированную информацию на основе логина, пароля и полученного идентификатора.
2. Сервер проверяет и, если всё верно, выдаёт токен для последующих запросов.
3. Для защиты от восстановления формулы хэширования на основе одинаковых данных, используется полиморфизм: добавляется параметр random и timestamp к передаваемым параметрам.
4. Для защиты уникальности - на стороне сервера предусматривается суточное хранение всех запросов на основе токена.

Токен может быть как постоянным, так и одноразовым.
1. Постоянный - когда при каждом запросе к серверу он не меняется.
2. Одноразовый - когда после каждого запроса к серверу, сервер выдаёт новый токен.
Ответ написан
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
Вы наверное хотели сказать с ionic framework?
Electron для desktop.

Можете посмотреть на react native или что-нибудь еще.

Не совсем понимаю, в чем проблема контроля прав? Этим должно заниматься Ваше API на сервере(разрешен ли такой метод или нет). А на клиенте достаточно просто хранить token для запросов.
Ответ написан
miraage
@miraage
Старый прогер
Bearer token.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы