from flask import jsonify, request from flask_jwt_extended import create_access_token from flask_cors import cross_origin from datetime import timedelta from areas import api_v1 from config import * from helpers import HydraOauth, BadRequest @api_v1.route("/login", methods=["POST"]) @cross_origin() def login(): authorization_url = HydraOauth.authorize() return jsonify({"authorizationUrl": authorization_url}) @api_v1.route("/hydra/callback") @cross_origin() def hydra_callback(): state = request.args.get("state") code = request.args.get("code") if state == None: raise BadRequest("Missing state query param") if code == None: raise BadRequest("Missing code query param") token = HydraOauth.get_token(state, code) access_token = create_access_token( identity=token, expires_delta=timedelta(days=365) ) return jsonify({"access_token": access_token})