Я пишу приложение для iPhone, чтобы быть мобильной версией моего сайта.
Я намерен предоставить некоторые REST API, чтобы приложение могло обновлять данные пользователя.
Я не хочу, чтобы пользователь входил в систему каждый раз, но я хочу сохранить его токен / cookie и повторно использовать его для всех будущих запросов.
Я могу настроить случайный токен и передать его вместе с идентификатором пользователя, но он не очень безопасен, так как легко получить доступ к нему на джейлбрейк-устройстве. Я не могу ограничивать его использованием IP, так как IP, вероятно, будет часто меняться (поскольку это мобильное устройство).
Каков наилучший способ реализации такой проверки подлинности, которая будет достаточно безопасной, но не раздражает пользователя, прося его часто проверять подлинность?
отправьте UDID или MAC-адрес с начальными данными для входа на ваш сервер. создайте уникальный токен для этой комбинации пользователей / UDID (или mac) и отправьте его (зашифровано) на устройство, если имя пользователя / пароль успешно. при последующем доступе устройство отправляет зашифрованный токен и UDID / mac (через безопасное соединение) для повторной аутентификации.
если вы хотите легко параноидальных людей отслеживать UDID, вместо этого вы можете использовать UDID / mac для сокрытия зашифрованного токена, но это не будет столь же безопасным, но должно делать работу по-прежнему.