- 13, May 2024
- #1
ПРИВЕТ,
Я создаю мобильное приложение (используя телефонную связь), которое взаимодействует с API. В этом приложении пользователям необходимо зарегистрироваться и войти в систему, чтобы использовать приложение.
Для этого я создал API (обслуживается только через https). Мне просто интересно, как лучше всего отсортировать аутентификацию. В момент входа в систему он проверяет адрес электронной почты и пароль.
Если комбинация найдена в базе данных, я возвращаю случайно сгенерированный ключ из 50 символов (заглавные, строчные, цифры и несколько специальных символов). Затем приложение сохраняет этот ключ в локальном хранилище.
Всякий раз, когда приложение выполняет вызов API, ключ добавляется в заголовок.
Прежде чем API что-либо сделает, он проверяет ключ и проверяет его действительность.
Только после проверки выполняется остальная часть вызова API. Токены хранятся на стороне API в базе данных вместе с датой истечения срока действия и пользовательским агентом.
Если пользовательский агент отличается от того, который использовался для создания токена, токен немедленно становится недействительным и удаляется. Это относительно безопасный метод или есть ли какие-либо риски для безопасности? Спасибо
Я создаю мобильное приложение (используя телефонную связь), которое взаимодействует с API. В этом приложении пользователям необходимо зарегистрироваться и войти в систему, чтобы использовать приложение.
Для этого я создал API (обслуживается только через https). Мне просто интересно, как лучше всего отсортировать аутентификацию. В момент входа в систему он проверяет адрес электронной почты и пароль.
Если комбинация найдена в базе данных, я возвращаю случайно сгенерированный ключ из 50 символов (заглавные, строчные, цифры и несколько специальных символов). Затем приложение сохраняет этот ключ в локальном хранилище.
Всякий раз, когда приложение выполняет вызов API, ключ добавляется в заголовок.
Прежде чем API что-либо сделает, он проверяет ключ и проверяет его действительность.
Только после проверки выполняется остальная часть вызова API. Токены хранятся на стороне API в базе данных вместе с датой истечения срока действия и пользовательским агентом.
Если пользовательский агент отличается от того, который использовался для создания токена, токен немедленно становится недействительным и удаляется. Это относительно безопасный метод или есть ли какие-либо риски для безопасности? Спасибо