Создать правильную архитектуру для аутенфикации и авторизации через Google с помощью Spring Security и Angular с использованием JWT
Задача: реализовать авторизацию и аутенфикацию(A&A) с помощью Spring Security через Google с применением JWT-технологии. На стороне клиента используется Angular 9.
Что сделано: имеется Spring Boot приложение с настроеными бином для A&A через Google:
@Bean
public ClientRegistration clientRegistrationGoogle()
{
return ClientRegistration
.withRegistrationId("google")
.clientId(clientId)
.clientSecret(clientSecret)
.userNameAttributeName("name")
.clientAuthenticationMethod(BASIC)
.authorizationGrantType(AUTHORIZATION_CODE)
.userInfoUri("https://www.googleapis.com/userinfo/v2/me")
.tokenUri("https://www.googleapis.com/oauth2/v3/token")
.authorizationUri("https://accounts.google.com/o/oauth2/auth")
.scope("https://www.googleapis.com/auth/plus.login")
.redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}")
.build();
}
Клиент в свою очередь обращается к АПИ сервера по следующему адресу:
http://localhost:8080/oauth2/authorization/google
После редайректа и введения логина/пароля для гугла, сервер еще обменивается некоторыми данными с АПИ Google'a и получает информацию о юзере:
Затем инфа сохраняется в локальное хранилище и как результат юзер авторизован.
Теперь о проблеме: На основе того, что юзер авторизован я могу сгенерировать токен и передать клиенту. Но не совсем понимаю как это сделать правильно! Как мне передать на клиент JWT-токен, который тот потом будет использовать для обращения к серверу? Возможно кто-то знает туториалы с правильной информацией. Буду благодарен за любую помощь! Всем добра.
