Рубрики
Без рубрики

Пользовательская страница входа для возвращающегося пользователя

Узнайте, как разработать пользовательскую страницу входа для пользователей, возвращающихся в наше приложение.

Автор оригинала: baeldung.

1. Введение

Эта статья является продолжением нашей текущей регистрация в серии весенних .

В этой статье мы посмотрим, как разработать пользовательскую страницу входа для пользователя, который возвращается в наше приложение. Пользователь будет встречен со стандартным “Добро пожаловать …” Сообщение.

2. Добавление долго прожитого печенья

Один из способов определить, возвращается ли пользователь на наш веб-сайт, — добавить долгоиговое cookie (например, 30 дней) после того, как пользователь успешно вошел в систему. Чтобы развить эту логику, мы должны реализовать наши АутентификацияУцессХендлер который добавляет cookie после успешной проверки подлинности.

Давайте создадим наш пользовательский MyCustomLoginAuthenticationSuccessHandler и реализовать onAuthenticationSuccess () метод:

@Override
public void onAuthenticationSuccess(final HttpServletRequest request,
  final HttpServletResponse response, final Authentication authentication)
  throws IOException {
    addWelcomeCookie(gerUserName(authentication), response);
    redirectStrategy.sendRedirect(request, response,
    "/homepage.html?user=" + authentication.getName());
}

Основное внимание здесь уделяется призыву addWelcomeCookie () метод.

Теперь давайте посмотрим на код, чтобы добавить cookie:

private String gerUserName(Authentication authentication) {
    return ((User) authentication.getPrincipal()).getFirstName();
}

private void addWelcomeCookie(String user, HttpServletResponse response) {
    Cookie welcomeCookie = getWelcomeCookie(user);
    response.addCookie(welcomeCookie);
}

private Cookie getWelcomeCookie(String user) {
    Cookie welcomeCookie = new Cookie("welcome", user);
    welcomeCookie.setMaxAge(60 * 60 * 24 * 30);
    return welcomeCookie;
}

Мы установили печенье с ключом “Добро пожаловать” и значение, которое является самым первоеимя . Срок действия файла cookie истекает через 30 дней.

3. Чтение cookie на форме входа

Последний шаг заключается в том, чтобы читать cookie всякий раз, когда форма входа загружается, и если присутствует, получить значение для отображения приветственного сообщения. Мы можем сделать это легко с Javascript.

Во-первых, давайте добавим заполнителя “Добро пожаловатьтекст” для отображения нашего сообщения на странице входа:



...

Теперь давайте посмотрим на соответствующий Javascript :

function getCookie(name) {
    return document.cookie.split('; ').reduce((r, v) => {
        const parts = v.split('=')
        return parts[0] === name ? decodeURIComponent(parts[1]) : r
    }, '')
}
    
function display_username() {
    var username = getCookie('welcome');
    if (username) {
        document.getElementById("welcometext").innerHTML = "Welcome " + username + "!";
    }
}

Первая функция просто считывает файл cookie, который был установлен во время вошли в систему пользователя. Вторая функция манипулирует HTML-документом, чтобы установить приветственное сообщение при присутствуют файлы cookie.

Функция display_username () вызывается на HTML тега на загрузку события:

4. Заключение

В этой быстрой статье мы видели, как просто настроить пользовательский интерфейс, изменив поток проверки подлинности по умолчанию весной. Много сложных вещей можно сделать на основе этой простой установки.

К странице входа в этот пример можно получить через /customLogin URL-адрес. Полный код этой статьи можно найти более на GitHub .