Security Interface for you project.
Project description
Security Interface
This library provides easy API for authentication and authorization.
Installation
Install with the following command:
$ pip install security_interface
Usage
First of all you need implement IdentityPolicyInterface and AuthorizationPolicyInterface interfaces. For example we can implement JWT Security:
import jwt from security_interface import IdentityPolicyInterface, AuthorizationPolicyInterface class JwtIdentityPolicy(IdentityPolicyInterface): def __init__(self, secret, algorithm="HS256"): self.algorithm = algorithm self.secret = secret async def identify(self, identity): if jwt is None: raise TypeError("Please install PyJWT") try: return jwt.decode( identity, self.secret, algorithms=[self.algorithm], options={"verify_exp": True, "verify_iat": True}, ) except Exception as e: return None class JwtAuthPolicy(AuthorizationPolicyInterface): async def can(self, identity, permission): return permission in identity["scope"]
Create security instance with our implementation
from security_interface.api import Security jwt_identity = JwtIdentityPolicy("SECRET") jwt_auth_policy = JwtAuthPolicy() security = Security(jwt_identity, jwt_auth_policy) # Checking claim security.identify(CLAIM) # Checking permission security.can(CLAIM, "read") security.can(CLAIM, "write")
For full implementation see DEMO
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
Close
Hashes for security_interface-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d2f35a82fbea387898e316c504eed4689983f593adfd0b7767283c70e6b75ec |
|
MD5 | abdb73d557c3fec7177a3af72aaaa84e |
|
BLAKE2b-256 | 6eab275e37f2a60422d9785de81c6104e776ddbde4e6d9cb34e4713c45690ddb |