88from auth_app .utils import logged_input , get_timestamp_now
99from auth_app .validator import SignupBodyValidation , LoginBodyValidation , UserSchema
1010from auth_app .models import User , Token
11- from auth_app .extensions import db
11+ from auth_app .extensions import db , jwt
12+ from flask_jwt_extended import verify_jwt_in_request
1213
1314ACCESS_EXPIRES = timedelta (days = 1 )
1415REFRESH_EXPIRES = timedelta (days = 5 )
1516api = Blueprint ('auth' , __name__ )
1617
17- # Message_ID variable
18- NEW_OTP_SENT = '301'
19- WRONG_OTP = '305'
20- OTP_EXPIRED = '306'
21- PHONE_DOES_NOT_EXISTS = '307'
22- WRONG_PHONE_PASSWORD = '308'
23- INCORRECT_EMAIL_PASSWORD = "396"
24- INACTIVE_ACCOUNT_ERROR = "414"
25- SESSION_EXPIRED = '343'
26-
2718
2819@api .route ('/signup' , methods = ['POST' ])
2920def signup ():
@@ -41,7 +32,7 @@ def signup():
4132 try :
4233 json_req = request .get_json ()
4334 except Exception as ex :
44- return send_error (message = " Request Body incorrect json format: " + str (ex ), code = 442 )
35+ return send_error (message = ' Request Body incorrect json format: ' + str (ex ), code = 442 )
4536
4637 # Log request api
4738 logged_input (json .dumps (json_req ))
@@ -59,13 +50,13 @@ def signup():
5950 # validate request body
6051 is_not_validate = SignupBodyValidation ().validate (json_body ) # Dictionary show detail error fields
6152 if is_not_validate :
62- return send_error (data = is_not_validate , message = " Invalid parameters" )
53+ return send_error (data = is_not_validate , message = ' Invalid parameters' )
6354
64- email = json_body .get (" email" )
65- password = json_body .get (" password" )
55+ email = json_body .get (' email' )
56+ password = json_body .get (' password' )
6657 duplicated_user = User .query .filter (User .email == email ).first ()
6758 if duplicated_user :
68- return send_error (message = " User existed" )
59+ return send_error (message = ' User existed' )
6960
7061 created_date = get_timestamp_now ()
7162 _id = str (uuid .uuid4 ())
@@ -75,7 +66,7 @@ def signup():
7566 db .session .commit ()
7667
7768 data = {
78- " user_id" : _id
69+ ' user_id' : _id
7970 }
8071
8172 return send_result (data = data )
@@ -102,7 +93,7 @@ def login():
10293 try :
10394 json_req = request .get_json ()
10495 except Exception as ex :
105- return send_error (message = " Request Body incorrect json format: " + str (ex ), code = 442 )
96+ return send_error (message = ' Request Body incorrect json format: ' + str (ex ), code = 442 )
10697
10798 logged_input (json .dumps (json_req ))
10899 if json_req is None :
@@ -116,15 +107,15 @@ def login():
116107 # validate request body
117108 is_not_validate = LoginBodyValidation ().validate (json_body ) # Dictionary show detail error fields
118109 if is_not_validate :
119- return send_error (data = is_not_validate , message = " Invalid params" )
110+ return send_error (data = is_not_validate , message = ' Invalid params' )
120111
121112 # Check username and password
122- email = json_body .get (" email" )
123- password = json_body .get (" password" )
113+ email = json_body .get (' email' )
114+ password = json_body .get (' password' )
124115
125116 user = User .query .filter (User .email == email ).first ()
126117 if user is None or (password and not check_password_hash (user .password_hash , password )):
127- return send_error (message = " Login failed" )
118+ return send_error (message = ' Login failed' )
128119
129120 access_token = create_access_token (identity = user .id , expires_delta = ACCESS_EXPIRES )
130121 refresh_token = create_refresh_token (identity = user .id , expires_delta = REFRESH_EXPIRES )
@@ -137,4 +128,19 @@ def login():
137128 data .setdefault ('access_token' , access_token )
138129 data .setdefault ('refresh_token' , refresh_token )
139130
140- return send_result (data = data , message = "Logged in successfully!" )
131+ return send_result (data = data , message = 'Logged in successfully!' )
132+
133+
134+ @api .route ('/tokens/validate' , methods = ['GET' ])
135+ def validate_token ():
136+ """
137+ Validate access_token api
138+
139+ Requests Header:
140+ Authorization: string, require
141+
142+ Returns:
143+ validate or not
144+ """
145+ verify_jwt_in_request ()
146+ return send_result (message = 'Token valid' )
0 commit comments