Current collected state Current
Observed since 21 Oct, 10:20 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
aicp-auth-python
Biblioteca de autenticação e autorização para Keycloak com suporte a permissões contextuais - Python
Biblioteca de autenticação e autorização para Keycloak - Python
pip install aicp-auth-python
Isso instala apenas as dependências básicas. Para usar com Flask ou FastAPI, instale as dependências extras:
pip install aicp-auth-python[flask]
pip install aicp-auth-python[fastapi]
# Funciona sempre, mesmo sem Flask/FastAPI
from aicp_auth import KeycloakClient, AuthConfig, User
# Certifique-se de ter instalado: pip install aicp-auth-python[flask]
from aicp_auth import flask_auth_middleware, AuthConfig
config = AuthConfig(
url="https://keycloak.example.com",
realm="my-realm",
client_id="my-client"
)
@app.route('/api/protected')
@flask_auth_middleware(config)
def protected_route():
return {'user': g.user.__dict__}
# Certifique-se de ter instalado: pip install aicp-auth-python[fastapi]
from aicp_auth import fastapi_auth_middleware, AuthConfig, User
config = AuthConfig(
url="https://keycloak.example.com",
realm="my-realm",
client_id="my-client"
)
get_current_user = fastapi_auth_middleware(config)
@app.get('/api/protected')
def protected_route(user: User = Depends(get_current_user)):
return {'user': user.__dict__}
Veja a documentação principal para mais detalhes.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | requests>=2.25.0 | runtime |
PyJWTEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | PyJWT>=2.0.0 | runtime |
cryptographyEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | cryptography>=3.0.0 | runtime |
python-keycloakEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | python-keycloak>=3.0.0 | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pytest>=6.0.0; extra == "dev" | runtime |
pytest-covEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pytest-cov>=2.0.0; extra == "dev" | runtime |
blackEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | black>=21.0.0; extra == "dev" | runtime |
flake8Environment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | flake8>=3.8.0; extra == "dev" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | mypy>=0.800; extra == "dev" | runtime |
pre-commitEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | pre-commit>=2.15.0; extra == "dev" | runtime |
flaskEnvironment{
"extras": "",
"marker": "extra == \"flask\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | flask>=2.0.0; extra == "flask" | runtime |
fastapiEnvironment{
"extras": "",
"marker": "extra == \"fastapi\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | fastapi>=0.68.0; extra == "fastapi" | runtime |
uvicornEnvironment{
"extras": "",
"marker": "extra == \"fastapi\"",
"requires_python": ">=3.8",
"evaluation": "NOT_EVALUATED"
} | uvicorn>=0.15.0; extra == "fastapi" | runtime |
bdist_wheel · 10.52 KB · Python py3
sdist · 11 KB · Python source
Observed since 21 Oct, 10:20 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:a2ec9f0fe639dc3620cb91908a7907bcbbce70286607228017331ae4fee48e30