Implemented oidc with hydra
This commit is contained in:
parent
26ffb28a41
commit
2160f634d1
9 changed files with 87 additions and 16 deletions
|
|
@ -1,21 +1,26 @@
|
|||
from flask import request, jsonify
|
||||
from flask import jsonify
|
||||
from flask_jwt_extended import create_access_token
|
||||
from flask_cors import cross_origin
|
||||
from datetime import timedelta
|
||||
|
||||
from areas import api_v1
|
||||
|
||||
USERNAME = 'admin'
|
||||
PASSWORD = 'admin'
|
||||
from config import *
|
||||
from helpers import HydraOauth
|
||||
|
||||
|
||||
@api_v1.route('/login', methods=['POST'])
|
||||
@api_v1.route("/login", methods=["POST"])
|
||||
@cross_origin()
|
||||
def login():
|
||||
username = request.json.get('username')
|
||||
password = request.json.get('password')
|
||||
authorization_url = HydraOauth.authorize()
|
||||
return jsonify({"authorizationUrl": authorization_url})
|
||||
|
||||
if username != USERNAME or password != PASSWORD:
|
||||
return jsonify({'errorMessage': 'Invalid username or password'}), 401
|
||||
|
||||
access_token = create_access_token(identity=username)
|
||||
return jsonify({'username': USERNAME, 'access_token': access_token})
|
||||
@api_v1.route("/hydra/callback")
|
||||
@cross_origin()
|
||||
def hydra_callback():
|
||||
token = HydraOauth.get_token()
|
||||
access_token = create_access_token(
|
||||
identity=token, expires_delta=timedelta(days=365)
|
||||
)
|
||||
|
||||
return jsonify({"access_token": access_token})
|
||||
|
|
|
|||
Reference in a new issue