Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] Opcion para mensaje token

    @PostMapping
    public ResponseEntity<DatosTokenJWT> iniciarSesion(@Valid @RequestBody DatosAutenticacion datos) {
        var authenticationToken = new UsernamePasswordAuthenticationToken(datos.login(), datos.contrasena());
        var autenticacion = manager.authenticate(authenticationToken);

        var tokenJWT = tokenService.generarToken((Usuario) autenticacion.getPrincipal());

        return ResponseEntity.ok("token: " + tokenJWT);
    }
1 respuesta

¡Hola Christian, espero que estés bien!

Gracias por compartir tu código. Veo que estás trabajando en la generación de tokens JWT en tu API. Tu implementación parece estar bien encaminada. Sin embargo, si buscas una sugerencia para mejorar el mensaje de respuesta al cliente, podrías considerar devolver el token JWT en un formato JSON más estructurado. Esto es útil para que el cliente pueda manejar la respuesta de manera más consistente.

Aquí tienes un ejemplo de cómo podrías modificar tu método para devolver el token en un objeto JSON:

@PostMapping
public ResponseEntity<Map<String, String>> iniciarSesion(@Valid @RequestBody DatosAutenticacion datos) {
    var authenticationToken = new UsernamePasswordAuthenticationToken(datos.login(), datos.contrasena());
    var autenticacion = manager.authenticate(authenticationToken);

    var tokenJWT = tokenService.generarToken((Usuario) autenticacion.getPrincipal());

    Map<String, String> response = new HashMap<>();
    response.put("token", tokenJWT);

    return ResponseEntity.ok(response);
}

En este ejemplo, estoy utilizando un Map<String, String> para crear un objeto JSON que contiene el token. Esto hace que la respuesta sea más clara y fácil de manejar para el cliente que consume tu API.

Espero que esta sugerencia te sea útil y te ayude a mejorar la implementación de tu API. ¡Bons estudios!