Appearance
Usuários do Blog
O módulo de usuários do blog permite o gerenciamento de contas independentes da tabela principal de usuários do sistema. Cada blog possui seu próprio conjunto de usuários, garantindo o isolamento de dados através do cabeçalho X-Blog-Id.
Por que usar usuários do blog?
Diferente dos usuários do workspace, os usuários do blog são focados em autoria e gestão de conteúdo. Isso permite que você tenha colaboradores específicos para cada blog sem misturar as credenciais administrativas da plataforma principal.
Autenticação
A autenticação é baseada em tokens Bearer. Para realizar a maioria das operações, você precisará obter um token de acesso.
Login
Autentica um usuário e retorna um token de acesso de 30 dias.
http
POST /v1/blog/users/public/loginParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | O endereço de e-mail do usuário. |
password | string | Sim | A senha da conta. |
Exemplo de Requisição
bash
curl -X POST https://api.us.basis.tavares.in/v1/blog/users/public/login \
-H "Content-Type: application/json" \
-H "X-Blog-Id: seu-blog-id" \
-d '{
"email": "autor@exemplo.com",
"password": "sua-senha-segura"
}'Resposta de Sucesso 200 OK
json
{
"type": "bearer",
"name": "c3369c6e-63b2-4650-adf3-0b5e33bbd7ea",
"token": "oat_Mw.NXctOThpazQ4VGY3UlNKZW94Q0dobTVwa1QyWW5LcUxnSHkwdDVZaTE3MjI3NDUyMzg",
"abilities": ["*"],
"lastUsedAt": null,
"expiresAt": "2026-04-24T17:51:47.296Z"
}Resposta de Erro 422 Unprocessable Entity
json
{
"errors": [
{ "message": "Usuário não encontrado" }
]
}Logout
Invalida o token de acesso atual do usuário.
http
POST /v1/blog/users/logoutParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
identifier | string | Sim | O identificador do token (campo name retornado no login). |
Recuperação de Senha
Processo público para usuários que esqueceram suas credenciais.
Esqueci minha senha
Envia um código de redefinição para o e-mail informado, caso o blog possua um serviço de e-mail configurado.
http
POST /v1/blog/users/public/forgot-passwordParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | E-mail da conta para recuperação. |
Redefinir Senha
Utiliza o código recebido por e-mail para definir uma nova senha.
http
POST /v1/blog/users/public/reset-passwordParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | E-mail da conta. |
code | string | Sim | Código de 7 caracteres recebido por e-mail. |
password | string | Sim | A nova senha (mínimo 8 caracteres). |
Gerenciamento de Perfil
Estes endpoints permitem que o usuário autenticado gerencie seus próprios dados.
Obter Dados da Conta
Retorna os detalhes do usuário atualmente autenticado.
http
GET /v1/blog/users/accountResposta de Sucesso 200 OK
json
{
"id": 6,
"firstName": "Gerson",
"lastName": "Tavares",
"email": "gerson_tavares@gmail.com",
"role": "admin",
"blogImage": {
"id": 5,
"uri": "https://..."
}
}Atualizar Perfil
Atualiza as informações pessoais e sociais do perfil.
http
PUT /v1/blog/users/accountParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
firstName | string | Sim | Primeiro nome. |
lastName | string | Sim | Sobrenome. |
email | string | Sim | E-mail (deve ser único). |
blogImageId | number | Não | ID da imagem de perfil. |
bio | string | Não | Breve biografia do autor. |
twitterX | string | Não | Link do perfil no Twitter/X. |
instagram | string | Não | Link do perfil no Instagram. |
Alterar Senha Própria
Altera a senha do usuário logado de forma direta.
http
PATCH /v1/blog/users/change-passwordParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
password | string | Sim | Nova senha desejada. |
Endpoints Administrativos
Restrição de Acesso
Estes endpoints exigem que o usuário autenticado possua a role admin. Caso contrário, a API retornará 406 Not Acceptable.
Listar Usuários
Retorna uma lista paginada de todos os usuários do blog.
http
GET /v1/blog/usersParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Não | Filtra por nome ou e-mail. |
page | number | Não | Número da página (Default: 1). |
perPage | number | Não | Itens por página (Default: 10). |
Criar Novo Usuário
Cadastra um novo colaborador no blog.
http
POST /v1/blog/usersParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
firstName | string | Sim | Nome do usuário. |
lastName | string | Sim | Sobrenome do usuário. |
email | string | Sim | E-mail único no blog. |
password | string | Sim | Senha inicial. |
role | enum | Sim | admin ou user. |
isActive | boolean | Não | Define se a conta inicia ativa (Default: true). |
Obter Detalhes de Usuário
Busca os dados completos de um usuário específico pelo ID.
http
GET /v1/blog/users/:idAtualizar Usuário
Atualiza os dados de qualquer usuário do blog.
http
PUT /v1/blog/users/:idAtivar/Desativar Usuário
Atalho para alterar rapidamente o status de acesso de um usuário.
http
PATCH /v1/blog/users/:id/change-activeParâmetros do Body
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
isActive | boolean | Sim | Novo status da conta. |
Remover Usuário
Remove permanentemente um usuário (Soft Delete).
http
DELETE /v1/blog/users/:idResposta de Sucesso 204 No Content
Utilitários
Listagem Simplificada
Retorna uma lista simplificada para preenchimento de componentes de seleção (Dropdowns).
http
GET /v1/blog/users/listResposta de Sucesso 200 OK
json
[
{ "value": "6", "label": "john@exemplo.com" },
{ "value": "5", "label": "johndoe@gmail.com" }
]