Flask JWT Router is a Python library that adds authorised routes to a Flask app
Project description
Flask JWT Router
Flask JWT Router is a Python library that adds authorised routes to a Flask app.
Read the Documentation here: Flask-JWT-Router
Installation
pip install flask-jwt-router
Basic Usage
from flask import Flask
from flaskJWTRoutes import JwtRoutes
app = Flask(__name__)
JwtRoutes(app)
White list Routes
app.config["WHITE_LIST_ROUTES"] = [
("POST", "/register"),
]
@app.route("/register", methods=["POST"])
def register():
return "I don't need authorizing!"
Declare an entity model
# Create your entity model (example uses Flask-SqlAlchemy)
class UserModel(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
# You can define the primary key name with `entity_key`
# (`id` is used by default)
JwtRoutes(app, entity_model=UserModel, entity_key="user_id")
Authorization
from flaskJWTRoutes.flask_jwt_routes import RouteHelpers
rh = RouteHelpers(app)
# white list the routes
app.config["WHITE_LIST_ROUTES"] = [
("POST", "/register"),
("POST", "/login"),
]
@app.route("/register", methods=["POST"])
def register():
"""I'm registering a new user & returning a token!"""
return jsonify({
"token": rh.register_entity(entity_id=1)
})
@app.route("/login", methods=["POST"])
def login():
"""I'm authorized & updating my token!"""
return jsonify({
"token": rh.update_entity(entity_id=1)
})
Access entity on Flask's global context
# Example uses Marshmallow to serialize entity object
class EntitySchema(Schema):
id = fields.Integer()
name = fields.String()
@app.route("/user", methods=["GET"])
def get_user():
"""I was authorized & i have a user!"""
entity = EntitySchema().dumps(g.entity).data
return jsonify({
"entity": entity
})
Authors
- joegasewicz - Initial work - @joegasewicz
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
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
flask-jwt-router-0.0.1.tar.gz
(25.1 kB
view hashes)
Built Distribution
Close
Hashes for flask_jwt_router-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0febbe2666d9360af57a28d2a4bf381bbd6496428952c32b998bd617c6ae6aae |
|
MD5 | 6e99c66af5c24caa453fcb36034ac00b |
|
BLAKE2b-256 | e1d45a4831cfabc2075b537bdabdb277a81697970e2b91b1106041720b0d775e |