Ответы пользователя по тегу Проектирование программного обеспечения
  • Как сохранять авторизацию в приложении?

    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/
    Ответ написан