Обработка пользовательского входа (имя пользователя / пароль) вместе с единым входом в API (Google, Apple et c.) - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь настроить свой бэкэнд Spring Boot WebFlux REST API, к которому будут подключаться клиентские мобильные приложения, и я не уверен, как вы обрабатываете как пользовательский вход, например учетную запись, созданную через мое приложение, так и использование единого входа в API, например Google Sign In или Sign In With Apple

С моим пользовательским входом я сгенерирую JWT, который будет передан обратно клиенту, а затем клиент отправит его в заголовке Authorization для каждого запроса и в моем * 1006. * в Spring API я бы проверил JWT, а затем установил контекст безопасности.

При едином входе в API у них не было бы JWT. Google Signin docs говорит, что передает токен через почтовый запрос на ваш сервер для проверки токена, поэтому я делаю это с помощью указанной c конечной точки в моем контроллере

val verifier = GoogleIdTokenVerifier.Builder(GoogleNetHttpTransport.newTrustedTransport(),JacksonFactory())
            .setAudience(listOf(""))
            .build()

val idToken: GoogleIdToken? = verifier.verify(loginData.authToken)

Что является рекомендуемым способом обработки обоих сценариев ios или даже проверки подлинности между несколькими едиными входами в API? Должен ли я просто вернуть JWT для единого входа в api, как если бы я использовал свой собственный, или есть способ, которым я могу использовать свой ServerSecurityContextRepository для обработки всего, устраняя необходимость в определенных c конечных точках для единого входа apis?

* Отказ от ответственности: я впервые реализую свой собственный REST API с безопасностью

...