Как получить учетную запись пользователя при использовании социального входа в JHipster - PullRequest
0 голосов
/ 05 ноября 2018

Я занимаюсь разработкой приложения Jhipster с использованием Angularjs, и после того, как я добавил социальный логин, его регенерирую. На стороне Angularjs мне нужно, чтобы текущий пользователь вошел в систему; если я использую:

Principal.identity().then(function(account) { vm.account = account; });

перед добавлением входа в систему через социальные сети этот фрагмент кода работал хорошо, чтобы войти в систему для текущего пользователя; после того как я добавил социальный логин больше не работает. Я вижу, что остальная часть вызова для получения учетной записи была изменена:

@GetMapping("/account")
@Timed
public ResponseEntity<UserDTO> getAccount(Principal principal) {
    if (principal != null) {
        if (principal instanceof OAuth2Authentication) {
            return new ResponseEntity<>(userService.getUserFromAuthentication((OAuth2Authentication) principal), HttpStatus.OK);
        } else {
            // Allow Spring Security Test to be used to mock users in the database
            return Optional.ofNullable(userService.getUserWithAuthorities())
                .map(user -> new ResponseEntity<>(new UserDTO(user), HttpStatus.OK))
                .orElse(new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR));
        }
    } else {
        throw new InternalServerErrorException("User could not be found", null);
    }
}

до того как было:

@GetMapping("/account")
@Timed
public ResponseEntity<UserDTO> getAccount() {
    return Optional.ofNullable(userService.getUserWithAuthorities())
        .map(user -> new ResponseEntity<>(new UserDTO(user), HttpStatus.OK))
        .orElse(new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR));

}

Итак, мой вопрос, теперь, как я могу получить (сторона Angularjs) account?

...