Skip to main content

SDK minimalista para NiceLogin: verificação JWT, reset de senha, ativar/desativar usuário (zero dependencies)

Project description

NiceLogin Python SDK

SDK minimalista para NiceLogin. Zero dependências externas.

Instalação

pip install nicelogin-jwks-python

Uso Rápido

from nicelogin_jwks import NiceLogin, NiceLoginJWKS

# Cliente para operações
client = NiceLogin(api_key="...", api_secret="...", base_url="https://api.v1.nicelogin.com")

# Trocar senha (1 linha)
client.change_password("user@email.com", "senha_atual", "nova_senha")

# Ativar/desativar usuário
client.activate_user("user-uuid")
client.deactivate_user("user-uuid")

# Verificar token JWKS
verifier = NiceLoginJWKS(jwks)
is_valid = verifier.verify_token(token)
payload = verifier.unpack(token)

API

NiceLogin(api_key, api_secret=None, base_url="https://api.v1.nicelogin.com")

Cliente HTTP para operações de autenticação.

Método Descrição
request_password_reset(email) Solicita token de reset. Retorna str
reset_password(email, current_password, new_password, reset_token) Reseta senha com token. Retorna bool
change_password(email, current_password, new_password) Troca senha (solicita token internamente). Retorna bool
activate_user(user_id) Ativa usuário. Requer api_secret. Retorna bool
deactivate_user(user_id) Desativa usuário. Requer api_secret. Retorna bool

NiceLoginJWKS(jwks)

Verificador de tokens JWT RS256.

Método Descrição
verify_token(token) Retorna True se válido, False caso contrário
unpack(token, verify=True) Extrai payload. Raises ValueError se inválido

Exemplos

Reset de Senha

from nicelogin_jwks import NiceLogin

client = NiceLogin(api_key="nicelogin_xxx")

# Opção 1: Em duas etapas
reset_token = client.request_password_reset("user@email.com")
# Envie o token por email para o usuário
client.reset_password("user@email.com", "senha_atual", "nova_senha", reset_token)

# Opção 2: Direto (se usuário sabe a senha atual)
client.change_password("user@email.com", "senha_atual", "nova_senha")

Ativar/Desativar Usuário

from nicelogin_jwks import NiceLogin

# api_secret necessário para essas operações
client = NiceLogin(api_key="nicelogin_xxx", api_secret="secret_xxx")

client.deactivate_user("550e8400-e29b-41d4-a716-446655440000")
client.activate_user("550e8400-e29b-41d4-a716-446655440000")

Verificar Token JWKS

from nicelogin_jwks import NiceLoginJWKS

# Obtenha JWKS de: GET https://api.v1.nicelogin.com/.well-known/jwks/{api_key}
jwks = {"keys": [{"kty": "RSA", "n": "...", "e": "AQAB", "kid": "..."}]}

verifier = NiceLoginJWKS(jwks)

if verifier.verify_token(token):
    payload = verifier.unpack(token)
    print(f"User: {payload['email']}")

Claims do Token

Campo Tipo Descrição
sub str User ID (UUID)
email str Email do usuário
company_id str Company ID (UUID)
exp int Timestamp de expiração
iat int Timestamp de emissão
jti str JWT ID único
sid str? Session ID (opcional)
user_data dict? Dados customizados (opcional)

Erros

from nicelogin_jwks import NiceLogin, NiceLoginError

client = NiceLogin(api_key="...")

try:
    client.change_password("user@email.com", "wrong", "new")
except NiceLoginError as e:
    print(f"Erro {e.status}: {e.message}")

Licença

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nicelogin_jwks_python-0.2.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nicelogin_jwks_python-0.2.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file nicelogin_jwks_python-0.2.0.tar.gz.

File metadata

  • Download URL: nicelogin_jwks_python-0.2.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for nicelogin_jwks_python-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e73e8460316779dbd96abdf5e079fe6eb3c9cd69d9632739313612f30cdbd1c7
MD5 c5c4d4e3073a84e803d106b77fafb10e
BLAKE2b-256 e8de61fdc895341e85201ee9a29f47cec257e2b7858b00aeacab116fc8c464e1

See more details on using hashes here.

File details

Details for the file nicelogin_jwks_python-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nicelogin_jwks_python-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8b5138b5a5054ce2d28447a0ae99bb8888215406b80a217c6914c9f38859845
MD5 f6e2b743f413e8b14a4d109ea09fdd8f
BLAKE2b-256 a546f69ab0bcd94e94a01925b8f47f3a4b2765beec4a0ba01730dec951e30723

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page