Metadata-Version: 2.1
Name: python-authorization
Version: 1.0.4
Summary: Simple python authorization library.
Home-page: https://github.com/julio-vaz/python-authorization
Author: Júlio Vaz
Author-email: jvaz@stone.com.br
License: MIT license
Description: # Simple python authorization
        
        This module was created to provide a simple authorization method to be used in service to service authorization.
        
        ## How to use
        
        **Important note about the credentials backend:** At this moment we do not provide a backend to store credentials. We receive a dict containing all the valid credentials following this format: `{"app_key":["app_name","secret"]}`
        
        Create a middleware in your API that receives the Authorization header and passes it to the package to ensue that the token is valid. In the above example we have a simple endpoint that validates the authentication based on a local dictionary as a credentials backend. Ideally you will implement a credential repository and pass the valid credentials to the module.
        
        ```python
        from http import HTTPStatus
        from flask import request, jsonify, Flask
        from python_authorization import Authorization
        
        app = Flask(__name__)
        
        @app.route('/')
        def dummy_endpoint():
            authorization_header = request.headers.get('Authorization')
        
            py_auth = Authorization(authorization_header, valid_credentials_dict={'valid_app_key1': ['valid_app_name', 'valid_secret']})
        
            # This method will only validate the format of the token
            is_valid = py_auth.validate_token_format()
        
            if not is_valid:
                return (jsonify({'Message': 'Invalid authorization token format'}), HTTPStatus.UNAUTHORIZED)
        
            # This method will asume that the token is in a valid format and will try to validate it 
            is_authorized = py_auth.validate_token()
        
            if not is_authorized:
                return (jsonify({'Message': 'Invalid authorization token'}), HTTPStatus.UNAUTHORIZED)
        
            return (jsonify({'Message': 'You are in!'}), HTTPStatus.OK)
        
        app.run('0.0.0.0', port=5000)
        ```
        
        You can also use this module to authenticate at a service using the Credentials class.
        
        ```python
        from python_authorization import Credentials
        
        credentials_factory = Credentials('valid_app_name', 'valid_app_key1', 'valid_secret')
        
        token = credentials_factory.build_token()
        
        print(f'This is my token: {token}')
        ```
Keywords: python_authorization
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
