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) |
| 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e73e8460316779dbd96abdf5e079fe6eb3c9cd69d9632739313612f30cdbd1c7
|
|
| MD5 |
c5c4d4e3073a84e803d106b77fafb10e
|
|
| BLAKE2b-256 |
e8de61fdc895341e85201ee9a29f47cec257e2b7858b00aeacab116fc8c464e1
|
File details
Details for the file nicelogin_jwks_python-0.2.0-py3-none-any.whl.
File metadata
- Download URL: nicelogin_jwks_python-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8b5138b5a5054ce2d28447a0ae99bb8888215406b80a217c6914c9f38859845
|
|
| MD5 |
f6e2b743f413e8b14a4d109ea09fdd8f
|
|
| BLAKE2b-256 |
a546f69ab0bcd94e94a01925b8f47f3a4b2765beec4a0ba01730dec951e30723
|