Jhipster логин с электронной почтой вместо имени пользователя - PullRequest
0 голосов
/ 21 октября 2018

Я создаю приложение, используя Jhipster.По умолчанию используется логин + пароль для входа в систему.Я хотел бы создать адрес электронной почты + пароль, чтобы я мог сделать имя пользователя не уникальным.Каков наилучший способ сделать это?

Я использую JWT.

1 Ответ

0 голосов
/ 31 октября 2018

По умолчанию поле логина используется для входа пользователя в приложение.Но с последней версией JHipster (я не уверен, с какой версии она была реализована) вы можете регистрировать пользователя по электронной почте.

В DomainUserDetailsService.java:

    public UserDetails loadUserByUsername(final String login) {
    log.debug("Authenticating {}", login);

    if (new EmailValidator().isValid(login, null)) {
        return userRepository.findOneWithAuthoritiesByEmail(login)
            .map(user -> createSpringSecurityUser(login, user))
            .orElseThrow(() -> new UsernameNotFoundException("User with email " + login + " was not found in the database"));
    }

    String lowercaseLogin = login.toLowerCase(Locale.ENGLISH);
    return userRepository.findOneWithAuthoritiesByLogin(lowercaseLogin)
        .map(user -> createSpringSecurityUser(lowercaseLogin, user))
        .orElseThrow(() -> new UsernameNotFoundException("User " + lowercaseLogin + " was not found in the database"));

}

НоЛогин по-прежнему уникален, так как почта, имя и фамилия не являются.Даже если у вас есть старая версия JHipster, я уверен, что вы можете добавить этот код для поддержки аутентификации электронной почты и входа в систему.

протестировано с JWT и последней версией JHipster!

...