in modular_api/index.py [0:0]
def refresh():
_trace_id = get_trace_id(tracer=tracer)
refresh_token = request.json.get('refresh_token')
if not refresh_token:
return build_response(
_trace_id=_trace_id,
http_code=HTTPStatus.UNAUTHORIZED,
message='Refresh token is required',
)
# Validate the refresh token
username, rt_version = validate_refresh_token(refresh_token)
if not username:
return build_response(
_trace_id=_trace_id,
http_code=HTTPStatus.UNAUTHORIZED,
message='Invalid or expired refresh token',
)
# Generate a new JWT session token
jwt_token = encode_data_to_jwt(username=username)
# Generate and store a new refresh JWT token
new_rt_version = gen_refresh_token_version()
new_refresh_token = encode_data_to_refresh_jwt(username, new_rt_version)
RefreshTokenService.create_and_save(username, new_rt_version)
data = {
'jwt': jwt_token,
'refresh_token': new_refresh_token,
'version': __version__,
}
return build_response(
_trace_id=_trace_id, http_code=HTTPStatus.OK, content=data
)