Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

[Projeto] Cadastrar novo USUÁRIO

Oi pessoal, blz?

queria fazer algo extra ao curso que seria criar um usuário e senha via requisição http. Como eu poderia fazer?

Pensei que poderia ser igual ao cadastro de paciente/médico, mas não está dando certo.

Coloquei o código abaixo dentro do AutenticacaoController

@PostMapping("/login/new")
    public ResponseEntity cadastrar(@RequestBody @Valid DadosAutenticacao dados){
        var usuario = new Usuario(dados);
        repository.save(usuario);
        return ResponseEntity.ok(new DadosAutenticacao(usuario));
    }

Alguém pode me auxiliar?

6 respostas
solução!

Oi Guilherme!

Você está no caminho certo. A única questão que faltou foi gerar o hash BCrypt da senha, senão ela será salva em texto aberto na tabela de usuários:

var senhaBCrypt = encoder.encode(dados.senha());
var usuario = new Usuario(new DadosAutenticacao(dados.login(), senhaBCrypt));

Além disso, vai precisar injetar o encoder no controller:

@Autowired
private PasswordEncoder encoder;

Oi Rodrigo!

quando envio a requisição da erro 404. O que poderia ser?

Aí precisa ver como você está enviando a requisição.

Pelo seu código a url que deve ser chamada é: localhost:8080/login/new

No insomnia fica assim

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Verifica a anotação @RequestMapping em cima da classe controller.

Talvez esteja /login e como você colocou no método /login/new, vai precisar chamar então na requisição: localhost:8080/login/login/new

Obrigado Rodrigo! tive alguns problemas no projeto, por isso demorei pra responder.