Metadata-Version: 2.1
Name: Flask-PASETO
Version: 0.0.1
Summary: Paseto integration for flask
Home-page: UNKNOWN
Author: Akerele Abraham
License: MIT
Platform: UNKNOWN
Description-Content-Type: text/markdown

# FLASK-PASETO
#### flask_paseto add basic supports to your flask app version2 support for [paseto](https://github.com/josharian/paseto)

### Installation 
Install with pip
```
    pip install flask_paseto
```

#### Example  usage
``` 
    from flask_paseto import (
        Paseto,
        paseto_required,
        create_access_token,
        create_access_token_public,
        get_paseto_claim,
        get_paseto_claim_public
    )

    app = Flask(__name__)

    app.config['PASETO_SECRET_KEY'] = '0'*32 # must be 32 byte
    pk, sk = pysodium.crypto_sign_keypair()
    app.config['PASETO_PRIVATE_KEY']=sk
    app.config['PASETO_PUBLIC_KEY']=pk


    paseto = Paseto(app)

    @app.route('/protected/local/')
    @paseto_required
    def protected():
        claims = get_paseto_claim()
        return jsonify(claims), 200

    @app.route('/create/local/token/')
    def create_token():
        ret = {'access_token': create_access_token({'test user':'yes'})}
        return jsonify(ret), 200

    @app.route('/create/public/token/')
    def create_public_token():
        ret = {'access_token': create_access_token_public({'public test user':'yes'})}
        return jsonify(ret), 200

    @app.route('/protected/public/')
    @paseto_required
    def protected_public():
        claims = get_paseto_claim_public()
        return jsonify(claims), 200

    app.run()
````
The client http request must provide a generated paseto token 
``` 
    GET /protected/public HTTP/1.1
    Authorization: Bearer v2.local.epxJJp-rchdlMondp12dxN9MV7GACjW0swwyOgo5pliQo2fJmC-1WqhrmWDTQBkg08In7zXD6ieM-xpaY2eMWr-mAu64nVi8VvTWi5bc3dhGHGR-Mg8QQ8HJIzPldLfSDLQXwQ
```
#### Configuration Options
| Option                | Description                                                                                     |
|-----------------------| ------------------------------------------------------------------------------------------------|
|PASETO_SECRET_KEY      | This is the secret key used by paseto to sign your data. *It requires 32 byte strings*          |
|PASETO_PUBLIC_KEY      | This is the public key generated as part of the key pair generated for paseto                   |
|PASETO_PRIVATE_KEY     | This is the private key generated as part of the key pair generated for paseto                  |
|PASETO_EXPIRATION_DELTA| The additional time from the current time the token was created before expiration               |  


