1
resposta

Fazendo cadastro com o BCrypt

Professor, no exemplo utilizado nós cadastramos na mão o usuário de teste para o login e senha, como seria uma implementação para o usuário de cadastrar criando um login e senha?

1 resposta

Oi!

Você poderia criar um controller para cadastro de usuários:

@RestController
@RequestMapping("usuarios")
public class UsuarioController {

    @Autowired
    private PasswordEncoder encoder;
    
    @Autoiwired
    private UsuarioRepository repository;

    @PostMapping
    @Transactional
    public String cadastrarUsuario(@RequestBody @Valid DadosCadastroUsuario dto) {
        var senhaBcrypt = encoder.encode(dto.senha());
        var usuario = new Usuario(dto.login(), senhaBcrypt);
        
        repository.save(usuario);
        
        return ResponseEntity.ok().build();
    }
    
}

A senha vem em texto aberto na requisição, então basta injetar o PasswordEncoder para converter para o formato BCrypt antes de salvar.