Pular para o conteúdo principal

Autenticação

A reCamera usa autenticação por Token JWT. Após um login bem-sucedido, o dispositivo retorna um Token por meio do cabeçalho de resposta Set-Cookie. As requisições subsequentes devem carregar esse Token.

Visão geral dos endpoints

MétodoCaminhoFinalidadeRequer login
GET/system/keyObter chave pública RSA (para alteração de senha)Não
POST/system/loginFazer login e obter um TokenNão
GET/system/checkVerificar se é o primeiro loginNão
PUT/system/passwordAlterar senha de administradorSim

Login

Requisição

POST /cgi-bin/entry.cgi/system/login
Content-Type: application/json

Corpo da requisição:

{
"sUserName": "admin",
"sPassword": "your_password"
}
CampoDescrição
sUserNameNome de usuário de login, padrão é admin
sPasswordSenha de login, transmitida em texto simples

Resposta

{
"iStatus": 0,
"iAuth": 1,
"sWaittime": 0
}
CampoDescrição
iStatus0 = senha correta, -1 = senha incorreta, -3 = bloqueado temporariamente
iAuth1 = login bem-sucedido, 0 = login falhou, 2 = é necessário alterar a senha
sWaittimeTempo de espera em segundos quando bloqueado

Obtenção do Token

Em caso de login bem-sucedido, os cabeçalhos de resposta contêm Set-Cookie:

Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9...; Max-Age=86400; Path=/

O tempo de vida do Token é determinado por Max-Age, com valor padrão de 86400 segundos (24 horas).

Uso do Token

Todas as requisições autenticadas devem incluir o Token no cabeçalho Cookie:

Cookie: token=<JWT_TOKEN>

Por exemplo, para obter informações do dispositivo:

GET /cgi-bin/entry.cgi/system/device-info
Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9...

Se o Token estiver ausente ou expirado, o dispositivo retorna:

{
"code": 401,
"message": "Unauthorized: Invalid token or NO token provided"
}

Bloqueio de login

O dispositivo aplica um limite de tentativas malsucedidas baseado em IP. Após repetidas senhas incorretas, iLoginAttempts é incrementado. Quando o limite é atingido, o dispositivo retorna iStatus=-3 com um valor sWaittime. Você deve aguardar o fim do bloqueio antes de tentar novamente.

Verificar primeiro login

GET /cgi-bin/entry.cgi/system/check

Resposta:

{
"bFirst": false
}

bFirst=true indica que o dispositivo está no fluxo de primeiro login e que a senha padrão deve ser alterada.

Alterar senha

Alterar a senha requer obter primeiro uma chave pública RSA, depois criptografar as senhas antiga e nova antes de enviar.

Obter chave pública

GET /cgi-bin/entry.cgi/system/key

Resposta:

{
"sPublicKey": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA...\n-----END RSA PUBLIC KEY-----"
}
CampoDescrição
sPublicKeyChave pública RSA, usada para criptografia de senha durante a alteração de senha

Criptografia de senha

Calcule o hash SHA256 da senha como uma string hexadecimal, depois criptografe-o com a chave pública usando preenchimento RSA PKCS1v15 e, por fim, codifique o resultado em Base64.

Enviar alteração

PUT /cgi-bin/entry.cgi/system/password
Content-Type: application/json

Corpo da requisição:

{
"sUserName": "admin",
"sOldPassword": "<encrypted_old_password>",
"sNewPassword": "<encrypted_new_password>"
}
CampoDescrição
sUserNameNome de usuário
sOldPasswordSenha antiga criptografada
sNewPasswordNova senha criptografada

Resposta de sucesso:

{
"code": 0,
"message": "success"
}

Códigos de erro:

CódigoDescrição
10001Nova senha é muito fraca
10002Token expirado, faça login novamente

Após alterar a senha, o Token atual pode se tornar inválido. Faça login novamente para obter um novo Token.

Suporte técnico e discussão sobre o produto

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diversos tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...