Создать правильную архитектуру для аутенфикации и авторизации через 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-токен, который тот потом будет использовать для обращения к серверу? Возможно кто-то знает туториалы с правильной информацией. Буду благодарен за любую помощь! Всем добра.


Ответы (0 шт):