A autenticação na API é realizada via JSON Web Tokens (JWT), enviados no cabeçalho Authorization
como Bearer Token
.
Existem os seguintes níveis de acesso:
Para facilitar o primeiro acesso e a configuração inicial, um usuário administrador padrão é automaticamente criado no banco de dados quando as migrações do projeto são executadas. Esta criação é realizada por um script de "seed" dentro de uma das migrações (por exemplo, um arquivo como CreateDefaultAdminUserSeed.ts
).
Este usuário padrão possui as seguintes credenciais iniciais:
admin@example.com
admin123
admin
9dfce170-5094-436f-9413-f5afc769a75e
Com este usuário, você pode acessar imediatamente todas as funcionalidades administrativas da API após a configuração inicial e execução das migrações do banco de dados.
O processo de criação na migração utiliza um comando SQL similar a este:
-- SQL executado pela migração para criar o admin padrão:
INSERT INTO "user" (
id, name, profile_pick, role, email, "password"
) VALUES (
'9dfce170-5094-436f-9413-f5afc769a75e',
'Admin User',
'https://l1nq.com/icone-de-perfil-de-avatar-padrao',
'admin',
'admin@example.com',
'$2b$10$yG9D2ihkLL6hTh5KCw/l5.BqAqJ3i49GIvksxCBStGSMEJtTHS2ey' -- Senha hasheada para: admin123
);
Importante: Por questões de segurança, é altamente recomendável que você altere a senha deste usuário padrão assim que possível após o primeiro login, especialmente se estiver configurando um ambiente de homologação ou produção.
Se você precisar alterar a senha do usuário administrador padrão diretamente no banco de dados (por exemplo, se esqueceu a senha ou para maior segurança), você precisará gerar um novo hash bcrypt para a nova senha e então atualizar o campo password
na tabela user
.
Passo 1: Gerar o Hash da Nova Senha
Você pode usar uma ferramenta online de geração de hash bcrypt com Rounds de 10, ou um script simples em Node.js com a biblioteca bcrypt
para gerar o hash da sua nova senha. Por exemplo, para a senha "novaSenhaAdminSuperSegura":
// Exemplo de script Node.js para gerar hash (não execute na documentação, apenas para ilustração)
// const bcrypt = require('bcrypt');
// const saltRounds = 10;
// const minhaNovaSenha = 'novaSenhaAdminSuperSegura';
// bcrypt.hash(minhaNovaSenha, saltRounds, function(err, hash) {
// console.log('Seu novo hash bcrypt é: ', hash);
// });
// Resultado exemplo: $2b$10$ExemploDeNovoHashGeradoPeloBcryptAqui123
Passo 2: Atualizar a Senha no Banco de Dados
Com o novo hash gerado (vamos supor que seja $2b$10$SeuNovoHashSuperSeguroAquiXxYyZz
), execute o seguinte comando SQL no seu banco de dados PostgreSQL para atualizar a senha do admin padrão (ID: 9dfce170-5094-436f-9413-f5afc769a75e
):
UPDATE "user"
SET "password" = '$2b$10$SeuNovoHashSuperSeguroAquiXxYyZz' -- Substitua pelo seu novo hash gerado
WHERE id = '9dfce170-5094-436f-9413-f5afc769a75e';
Você também pode usar este método para atualizar outros campos como name
ou profile_pick
se necessário, mas para alterações de senha, o hashing é crucial.
Lembre-se: Nunca armazene senhas em texto plano no banco de dados. Sempre use hashes seguros como Bcrypt.
Visitantes e Organizadores podem se registrar de forma independente através do endpoint público da API:
POST /user/register
Content-Type: application/json
{
"name": "Nome do Usuário",
"userLogin": {
"email": "usuario@example.com",
"password": "senhaSegura123"
},
"profilePick": "https://example.com/foto.jpg",
"role": "visitor" // ou "organizer"
}
Este endpoint permite que novos usuários criem suas contas e comecem a interagir com a plataforma de acordo com o papel (role
) especificado.