Я создаю простой api с Rails API и хочу убедиться, что здесь я на правильном пути. Я использую devise для обработки логинов и решил использовать token_authenticatable
опцию Devise , которая генерирует ключ API, который вам нужно отправлять с каждым запросом.
Я соединяю API с интерфейсом backbone / marionette и обычно задаюсь вопросом, как мне обрабатывать сеансы. Моя первая мысль заключалась в том, чтобы просто сохранить ключ api в локальном хранилище или файле cookie и получить его при загрузке страницы, но что-то в хранении ключа api таким образом беспокоило меня с точки зрения безопасности. Было бы нелегко получить ключ api, просмотрев локальное хранилище / файл cookie или проанализировав любой запрос, который проходит, и использовать его для бессрочного олицетворения этого пользователя? В настоящее время я сбрасываю ключ api при каждом входе в систему, но даже это кажется частым - каждый раз, когда вы входите в систему на любом устройстве, это означает, что вы выходите из системы на каждом другом, что является своего рода болью. Если бы я мог отказаться от этого сброса, я чувствую, что он улучшился бы с точки зрения удобства использования.
Я могу быть здесь совершенно неправ (и надеюсь, что ошибаюсь), может ли кто-нибудь объяснить, является ли аутентификация таким способом надежно безопасным, и если нет, то какой будет хорошая альтернатива? В целом, я ищу способ, которым я могу безопасно сохранить пользователей, которые «вошли в систему» для доступа к API, без частой повторной авторизации.