У меня есть клиентское приложение в React, где, когда пользователь пытается войти, перенаправляется на мой сервер Spring Security Auth. Здесь пользователю предлагается войти в систему со своими учетными данными на странице входа в систему stati c с сервера. После успешного входа в систему возвращается токен JWT. Однако я хочу перенаправить пользователя обратно в клиентское приложение с JWT в заголовке, чтобы я мог использовать токен для запросов к другой службе.
Это моя конечная точка аутентификации, которая вызывается со страницы входа в систему submit:
@RequestMapping(value= "/authenticate", method = RequestMethod.POST)
public ResponseEntity<?> createAuthenticationToken(@RequestParam Map<String, String> body) throws Exception{
AuthenticationRequest authenticationRequest = new AuthenticationRequest(body.get("userName"),body.get("password"));
System.out.println("Authcenticating");
try {
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(authenticationRequest.getUserName(), authenticationRequest.getPassword()));
}catch (BadCredentialsException e){
throw new Exception("Feil brukernavn eller passord", e);
}
final UserDetails userDetails = myUserDetailsService.loadUserByUsername(authenticationRequest.getUserName());
final String jwt = jwtTokenUtil.generateToken(userDetails);
return ResponseEntity.ok(new AuthenticationResponse(jwt)); //What can I change this with?
}
Отправка части логина. html page:
<form action="http://localhost:8080/authenticate" method="POST">
<label for="username"> Brukernavn</label>
<div class="username">
<input class="" type="text" id="userName" name="userName" aria-label="Brukernavn" required autofocus autocomplete="username" />
</div>
<label for="password"> Passord</label>
<div class="password">
<input class="" type="password" id="password" name="password" aria-label="Passord" required autocomplete="current-password" />
</div>
<button type="submit" class="button-primary breathe-top">Logg inn</button>
</form>
Я видел несколько способов сделать это с помощью перенаправления: url с использованием Spring MVC, но есть ли другой способ сделать это? Или есть другой способ сделать первоначальный вызов на сервер аутентификации? Любая помощь приветствуется.