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

Duvida armazenando o hash

Nessa parte do vídeo o professor coloca um hash já pronto no banco de dados que significa o 123456 no caso do email ana.souza, o certo não seria passar o email e a senha via insomia e na base de dados ser salvo a senha criptografada "automático" sem fazer o insert manual como feito? Por que tipo quando eu crio um novo funcionário lá ele já tem que armazenar a senha criptografada, ou eu teria que por a senha criptografada via insert para cada funcionário criado?

exemplo

3 respostas

Oi!

No curso não foi implementada uma funcionalidade de cadastro de usuários, então foi necessário inserir manualmente no banco de dados mesmo. O ideal seria ter uma funcionalidade para cadastrar usuários e nela seria recebido um login/senha, conversão da senha para BCrypt e insert no banco de dados.

Bons estudos!

Professor, como seria essa implementação de cadastro de usuário para que esse mesmo procedimento seja salvo no banco de dados automaticamente? O senhor faria uma aula especificando isso? Pois todas as aulas que tive, ninguem fala sobre isso. E outra pergunta. Como faria uma conexão do backend Springboot (já pronto) para o frontend (no caso usaria o Angular para projetar a tela)?

solução!

Não tem curso mostrando, mas aqui vai um exemplo:

Controller:

@PostMapping
@Transactional
public ResponseEntity<DadosUsuario> cadastrar(@RequestBody @Valid DadosCadastroUsuario dados) {
    var usuario = this.service.cadastrar(dados);
    return ResponseEntity.ok(usuario);
}

Service:

@Autowired
private UsuarioRepository repository;

@Autowired
private PasswordEncoder passwordEncoder;

public DadosUsuario cadastrar(DadosCadastroUsuario dados) {
    var emailJaCadastrado = this.repository.existsByEmail(dados.email());
    if (emailJaCadastrado) {
        throw new ValidacaoException("Email já cadastrado para outro usuário!");
    }

    var senhaBCrypt = passwordEncoder.encode(dados.senha());
    var usuario = new Usuario(dados, senhaBCrypt);

    this.repository.save(usuario);
    return new DadosUsuario(usuario);
}

Sobre a integração com o frontend, o front é que vai se integrar com o backend, então o trabalho "maior" será no frontend mesmo. A única coisa que precisa fazer no backend é configurar o CORS, para que o frontend consiga disparar requisição para o Backend. Aqui nesse repositório tem um exemplo de configuração do CORS com Spring Boot: https://github.com/rcaneppele/exemplo-clinica-spring-security