ola O objetivo é:
Cadastrar um usuário (/registrar)
Fazer login
Obter o token JWT
Seguir para a etapa de autenticação em dois fatores (2FA)
Porém, ao tentar cadastrar um usuário, a aplicação retorna erro 500.
ola O objetivo é:
Cadastrar um usuário (/registrar)
Fazer login
Obter o token JWT
Seguir para a etapa de autenticação em dois fatores (2FA)
Porém, ao tentar cadastrar um usuário, a aplicação retorna erro 500.
Ola!
O erro não é do Insomnia nem do endpoint em si, é um problema diretamente no banco / mapeamento JPA.
O erro que aparece é este (resumindo):
Unknown column
a2fativain field list
insert into usuarios (a2fativa, ativo, ...)
Isso significa que o Hibernate/JPA está tentando inserir um campo chamado a2fativa, mas essa coluna não existe na tabela usuarios no banco de dados.
No seu código Java, você tem algo como:
@Entity
@Table(name = "usuarios")
public class Usuario {
private Boolean a2fAtiva;
...
}
E o Hibernate está convertendo isso para a coluna:
a2fativa
Porém, no banco de dados, essa coluna não existe (ou tem outro nome).
Resultado:
Quando você chama /registrar, o Spring tenta salvar o usuário → gera o INSERT → o banco rejeita → erro 500.
Por que isso aparece justo nessa etapa do curso?
Nesse capítulo de 2FA, normalmente acontece uma destas situações:
a2fAtiva, secret, verificado, etc)Esse erro é clássico de entidade ≠ banco fora de sincronia.
Ajustar o banco
Verifique sua tabela usuarios. Ela precisa ter algo como:
ALTER TABLE usuarios
ADD COLUMN a2fativa BOOLEAN;
Ou, se o curso usa Flyway, criar uma migration do tipo:
V3__adiciona_coluna_a2fativa.sql
com o conteúdo adequado.
O nome da coluna precisa bater exatamente com o que o Hibernate espera.
Por que o erro aparece como 500?
Porque é uma exceção não tratada do banco de dados durante o INSERT.
O Spring transforma isso em Internal Server Error.
Ou seja:
O endpoint está correto, o JSON está correto, o problema é estrutural.