Viamos
@Viamos
Человек, который любит пиццу

Как определить провайдера после авторизации в Thymeleaf на Spring?

Здравствуйте! У меня есть сайт в котором можно авторизироваться локально или через провайдера Google по oAuth 2.0. По функционалу все работает. Встал такой момент, что хочу показывать фото профиля, но потом встал вопрос об авторизированного пользователя. Если пользователь авторизируется через гугл, то открытые данные, то бишь фото, сохранится у меня в базе данных. И как бы я хочу с него показывать без использования доп накладки на метод атрибута user, а как то хочется показывать через непосредственно Thymeleaf.

В пользователе есть enum Provider в котором есть LOCAL, GOOGLE

Отрывки кода

oAuth success
.successHandler((request, response, authentication) -> {
                            log.info(String.valueOf(authentication.getPrincipal()));
                            DefaultOidcUser oauthUser = (DefaultOidcUser) authentication.getPrincipal();
                            oAuthGoogleUserService.processOAuthPostLogin(oauthUser);
                            response.sendRedirect("/");
                        })


Контроллер только отправляет страницу

html
Хочется так
<!--            th:if="${#authentication.provider} == 'GOOGLE'"-->
    <img
            src="../../static/images/blank.png"
            th:src="${#authentication.getPrincipal().getAttributes().get('picture')}"
            class="rounded-circle"
            height="30"
            alt="Blank"
            loading="lazy"
    />
    <!--            th:if="${#authentication.provider} == 'LOCAL'"-->
    <img
            src="../../static/images/blank.png"
            th:src="${#authentication.getPrincipal().getPhotoLink()}"
            class="rounded-circle"
            height="30"
            alt="Blank"
            loading="lazy"
    />
  • Вопрос задан
  • 25 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы