Skip to content

Instantly share code, notes, and snippets.

@egealpay
Created September 8, 2018 18:39
Show Gist options
  • Save egealpay/7927baa36f7429f0a000cda320b8b48e to your computer and use it in GitHub Desktop.
Save egealpay/7927baa36f7429f0a000cda320b8b48e to your computer and use it in GitHub Desktop.
from flask import Flask, jsonify
from flask_restful import Api
from flask_jwt_extended import JWTManager
from resources.user import User, UserRegister, UserLogin
import os
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = os.environ.get("DATABASE_URL", "sqlite:///data.db")
app.config[
"SQLALCHEMY_TRACK_MODIFICATIONS"] = False
app.config["PROPAGATE_EXCEPTIONS"] = True
app.secret_key = "v3ry_s3cr3t_k3y"
api = Api(app)
jwt = JWTManager(app)
@jwt.expired_token_loader
def expired_token_callback():
return jsonify(
{
"description": "Token has expired!",
"error": "token_expired"
}, 401
)
@jwt.invalid_token_loader
def invalid_token_callback():
return jsonify(
{
"description": "Signature verification failed!",
"error": "invalid_token"
}, 401
)
@jwt.unauthorized_loader
def unauthorized_loader_callback(error):
return jsonify(
{
"description": "Access token not found!",
"error": "unauthorized_loader"
}, 401
)
@jwt.needs_fresh_token_loader
def fresh_token_loader_callback():
return jsonify(
{
"description": "Token is not fresh. Fresh token needed!",
"error": "needs_fresh_token"
}, 401
)
api.add_resource(User, "/user/<int:user_id>")
api.add_resource(UserRegister, "/register")
api.add_resource(UserLogin, "/login")
if __name__ == '__main__':
from database.db import db
db.init_app(app)
@app.before_first_request
def create_tables():
db.create_all()
app.run(port=5000, debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment