68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
|
from flask import Blueprint, request, jsonify
|
||
|
from core.bll import bllengine
|
||
|
from flask_cors import cross_origin
|
||
|
from flask_jwt_extended import create_access_token, get_jwt, jwt_required
|
||
|
from reqhandlers.blocklist import BLOCKLIST
|
||
|
import datetime
|
||
|
from datetime import timedelta
|
||
|
|
||
|
users = Blueprint('users', __name__)
|
||
|
|
||
|
|
||
|
@users.route('/projects/reqtest')
|
||
|
def retest():
|
||
|
return "success"
|
||
|
|
||
|
# I Register User
|
||
|
|
||
|
@users.route('/register', methods=['POST'])
|
||
|
@cross_origin()
|
||
|
@jwt_required(optional=True)
|
||
|
def register():
|
||
|
req=request.json
|
||
|
resp=bllengine.performRegistration(req)
|
||
|
return jsonify(resp)
|
||
|
|
||
|
# II Login User
|
||
|
|
||
|
@users.route('/login', methods=['POST'])
|
||
|
@cross_origin()
|
||
|
@jwt_required(optional=True)
|
||
|
def login():
|
||
|
req=request.json
|
||
|
resp=bllengine.performLoginActivity(req)
|
||
|
if 'user_details' in resp:
|
||
|
try:
|
||
|
# expires=datetime.datetime.utcnow() + datetime.timedelta(days=1)
|
||
|
expires=datetime.timedelta(days=1)
|
||
|
print(expires)
|
||
|
token=create_access_token(identity=resp['user_details']['username'],expires_delta=expires)
|
||
|
print("token generated successfully",token)
|
||
|
resp['jwt_token']=token
|
||
|
return jsonify({"responseid": req['requestid'], "responsefor": "User Login", "responsesetto": "UI", "response": resp})
|
||
|
except:
|
||
|
return jsonify({"responseid": req['requestid'], "responsefor": "User Login", "responsesetto": "UI", "response": "Error Ocuured"})
|
||
|
else:
|
||
|
return jsonify({"responseid": req['requestid'], "responsefor": "User Login", "responsesetto": "UI", "response": resp})
|
||
|
|
||
|
# III Logout User
|
||
|
|
||
|
@users.route('/logout', methods=['POST'])
|
||
|
@cross_origin()
|
||
|
@jwt_required()
|
||
|
def logout():
|
||
|
req=request.json
|
||
|
resp={}
|
||
|
if isinstance(req, dict):
|
||
|
print(get_jwt())
|
||
|
jti=get_jwt()['jti']
|
||
|
if (jti not in BLOCKLIST):
|
||
|
BLOCKLIST.add(jti)
|
||
|
print(BLOCKLIST)
|
||
|
resp={"responseid": req['requestid'], "responsefor": "User Logout", "responsesetto": "UI", "response": {"message": "User Loggedout Successfully"}}
|
||
|
else:
|
||
|
resp={"responseid": req['requestid'], "responsefor": "User Logout", "responsesetto": "UI", "response": {"message": "User has been already loggedout or else not yet logged in"}}
|
||
|
else:
|
||
|
resp={"responseid": req['requestid'], "responsefor": "User Logout", "responsesetto": "UI", "response": {"message": "Error Encountered"}}
|
||
|
return jsonify(resp)
|