Как (если вообще) я должен инкапсулировать токен доступа на стороне клиента? - PullRequest
0 голосов
/ 08 октября 2019

Я начинаю новый проект, который должен будет управлять множеством токенов доступа для множества различных API. Поэтому мне было интересно, если бы было хорошей практикой предоставлять токены доступа различным классам, реализующим вызовы API, или эти токены должны быть лучше инкапсулированы.

В настоящее время я вижу два варианта:

  • каждый класс API создает свои собственные запросы (в основном запросы HTTPS), получает токен доступа из интерфейса аутентификации и добавляет этот токен в запрос способом, требуемым для этого API
  • интерфейс аутентификации принимает запросиз класса API и добавляет токен к нему перед фактической отправкой запроса.

При последнем варианте класс API никогда не увидит токен, но будет сложно предвидеть все варианты добавления токена в запрос (заголовок, параметр GET или полностью другойпути).

Какой должна быть лучшая практика в этом случае?

1 Ответ

0 голосов
/ 09 октября 2019

Обычно токен доступа содержит такую ​​информацию, как «является ли этот пользователь привилегированным» и другие утверждения, связанные с авторизацией, которые выходят за рамки аутентификации.

Это означает, что одна служба аутентификации не может справиться с этими утверждениями, и APIкласс должен иметь возможность их видеть.

Следовательно, ваши классы API должны иметь возможность добавлять утверждения к токену доступа. Независимо от того, строят они токен или нет, не важно.

...