Предположим, вы создаете API-интерфейсы REST, к которым будут обращаться разные пользователи (люди, пользователи, ненадежные собственные приложения), поэтому у каждого из них есть свой метод аутентификации для технических или «исторических» решений.
например, пользователи используют JWT с некоторыми моделями утверждений, в то время как собственные приложения авторизуются с потоком Oauth2 и используют токены Oauth.Хотя оба хотят получить доступ к одним и тем же конечным точкам, поэтому приложению необходимо различать разные модели информации аутентификации и направлять их к соответствующим службам
Было бы легко добавить HTTP-заголовок "X-Auth-Method"и проверяю его при каждом входящем запросе, но я спрашиваю себя, будет ли он достаточно RESTful и, прежде всего, создает проблему для сторонних потребителей, которые хотят интегрировать свое программное обеспечение и должны знать / реализовывать какое-то поведение, специфичное для поставщика
еще одно решение - предоставить другую корневую конечную точку
- api.myapp.com / v1 / userapi
- api.myapp.com / v1 / clientapi
, а затем разрешить шлюзу API направлять запросы на соответствующий этап проверки подлинности службы, но на самом деле оба предоставляют точно один и тот же apis
Что было бы более правильным в RESTful-способе и учитывая все проблемычто происходит, когда вы строите открытые экосистемы?