ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Оптимальная архитектура валидации клиента для API?

Имеется:
Закрытое API, часть функционала с авторизацией пользователей, часть - нет.

Цель:
Ограничить возможность запросов исключительно доверенным клиентам.

Варианты:
  1. Авторизировать клиент через JWT. Суть проста - посылаем пару ключ-секрет, проверяем и в ответ отправляем токен. Токен сохраняем на сервере. Все запросы к API идут с токеном.
    Проблема заключается в хранении токенов: пара ключ-секрет для клиента одна, а токенов будет много. Стоит ли..?
    UPD: Не знал что JWT не требует хранения выданного токена. Тем не менее это оставляет вопрос авторизации клиента
  2. На клиенте храним строку, шифруем ее и отправляем на сервер. Проверяем, если все нормально - то обрабатываем запрос. Не выдается токен, как можно понять. Ну и как плюс для каждого клиента (сколько бы их не было) - одна запись в БД.
  3. Еще какие либо?

Обращаю внимание:
Вопрос не о авторизации клиента парой логин-пароль, а именно о ограниченом доступе к API с клиента (моб. приложение, десктопное, веб и т.д. )
  • Вопрос задан
  • 721 просмотр
Решения вопроса 1
ivanvorobei
@ivanvorobei Автор вопроса
iOS разработчик, канал https://t.me/sparrowcode
Для ищущих решение:
Валидацию клиента лучше всего делать через header
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
GTRxShock
@GTRxShock
Full-stack developer (Symfony, Angular)
Добрый вечер, вот вам статейка, чтобы наглядно посмотреть 2 общепринятых пути:
https://auth0.com/blog/2014/01/07/angularjs-authen...

p.s. по 1 варианту, что-то подсказывает, что суть jwt Вы упустили. Это полностью stateless аутентификация.
а 2 вариант, больше похож не велосипед. Прочитайте статью выше, и jwt решит все ваши проблемы)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы