import time
import datetime
import uuid
import hmac
import hashlib
from flask import jsonify, request
def unique_id():
return str(uuid.uuid1().hex)
def get_iso_datetime():
utc_offset_sec = time.altzone if time.localtime().tm_isdst else time.timezone
utc_offset = datetime.timedelta(seconds=-utc_offset_sec)
return datetime.datetime.now().replace(tzinfo=datetime.timezone(offset=utc_offset)).isoformat()
def get_signature(key, msg):
return hmac.new(key.encode(), msg.encode(), hashlib.sha256).hexdigest()
def get_headers(apiKey, apiSecret):
date = get_iso_datetime()
salt = unique_id()
data = date + salt
return {
'Authorization': 'HMAC-SHA256 ApiKey=' + apiKey + ', Date=' + date + ', salt=' + salt + ', signature=' +
get_signature(apiSecret, data)
}
def get_token(request):
apiKey = request.args.get('apiKey')
apiSecret = request.args.get('apiSecret')
if not apiKey or not apiSecret:
return jsonify({'error': 'apiKey and apiSecret are required!'}), 400
headers = get_headers(apiKey, apiSecret)
return jsonify(headers)