yanis_kondakov
@yanis_kondakov

Как сохранять авторизацию в приложении?

Всем доброго времени суток!
Не знаю, какие теги ставить, не судите строго.

1) Клиент залогинился
2) Работает с приложением
3) Интернет на телефоне есть, но сервер приложения перестал работать
4) Клиент закрывает приложение. Затем открывает. Авторизация слетает.

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

Как грамотно сохранить авторизацию?
  • Вопрос задан
  • 925 просмотров
Решения вопроса 1
akaish
@akaish
Стек Java\Android
А причем тут токен в приложении? Вам надо сохранять сессию пользователя между серверами, вот и всё.

Как хранить токен на устройстве клиента - зависит от платформы. Для андроид - internal storage и флаг MOD_PRIVATE на файл токена, к примеру.

UPD. Вопрос то не совсем корректен. Сессия пользователя должна сохраняться между серверами. Как вариант - сервер авторизации, чтобы не мучиться с сертификатами. Конкретнее по стеку технологий можно инфу? Может, даже подскажу конкретное решение.

UPD.2 Продублировал из комментария, так как комментарии по умолчанию скрыты.
Итак, в кратце, без заумных слов, рецепт на скорую руку:
1) в php пишем свой session handler, сохраняющий сессии в БД (!) находящуюся на отдельном сервере, который имеет хороший аптайм (ну или по уму, отказоустойчивый кластер)
2) при авторизации на сервере используется наша модная имплементация session handler, 16 битный ключ сессии при удачном логине сохраняется в бд, этот же ключ по HTTPS отдается клиентскому приложению и на нем сохраняется
3) при отключении сервера пользователь перенаправляется на новый сервер, который использует ту же самую реализацию session handler, по https передается 16битный ключ сессии, проверяется по БД. Сессия загружается из БД.

Всё. Это черновой "и так сойдет" вариант. Сам ключ сессии хранится на устройстве в приватных файлах приложения.

По уму же использовать готовые решения а-ля https://openid.net/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы