42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
from flask import Blueprint, jsonify, request
|
|
from database.account.account_data import create_new_account
|
|
from sdk_server.models.login.login_data import LoginReq,LoginRsp,Account
|
|
from database.account.account_data import find_account_by_name
|
|
|
|
login_blueprint = Blueprint('login', __name__)
|
|
|
|
@login_blueprint.route('/hkrpg_cn/mdk/shield/api/login', methods=['POST'])
|
|
@login_blueprint.route('/hkrpg_global/mdk/shield/api/login', methods=['POST'])
|
|
@login_blueprint.route('/account/ma-cn-passport/app/loginByPassword', methods=['POST'])
|
|
def login():
|
|
body=request.get_json()
|
|
try:
|
|
login_req = LoginReq(**body)
|
|
except Exception as e:
|
|
return jsonify({"error": "Invalid input", "details": str(e)}), 400
|
|
account_data=find_account_by_name(login_req.account)
|
|
if not account_data:
|
|
create_new_account(login_req.account)
|
|
account_data=find_account_by_name(login_req.account)
|
|
|
|
rsp=LoginRsp(
|
|
retcode=0,
|
|
message="success",
|
|
data=LoginRsp.Data(
|
|
account=Account(
|
|
uid=str(account_data.id),
|
|
name=account_data.username + "@MikuMiku",
|
|
token=account_data.token,
|
|
is_email_verify=0,
|
|
realname="Miku",
|
|
identity_card="114514",
|
|
country="OS",
|
|
area_code="OS",
|
|
),
|
|
device_grant_required=False,
|
|
realname_operation="NONE",
|
|
realperson_required=False,
|
|
safe_mobile_required=False
|
|
)
|
|
)
|
|
return jsonify(rsp.model_dump()) |