auto create account if not exist

This commit is contained in:
Naruse
2026-05-13 19:08:02 +08:00
parent 933ba097f9
commit 9763f1f8d9

View File

@@ -270,12 +270,17 @@ public class RouteController : ControllerBase
var finalEmail = email ?? form_email ?? await GetJsonBodyValue("email"); var finalEmail = email ?? form_email ?? await GetJsonBodyValue("email");
if (!string.IsNullOrWhiteSpace(finalEmail)) if (!string.IsNullOrWhiteSpace(finalEmail))
{ {
var accountByEmail = AccountData.GetAccountByEmail(finalEmail); var username = finalEmail.Split('@')[0];
if (accountByEmail == null) var accountData = AccountData.GetAccountByUserName(username);
return BuildLoginFailedResponse("Account not found."); if (accountData == null)
{
if (!ConfigManager.Config.ServerOption.AutoCreateUser) return BuildLoginFailedResponse("Account not found.");
AccountData.CreateAccount(username, 0, "123456");
accountData = AccountData.GetAccountByUserName(username)!;
}
var finalUidValue = accountByEmail.Uid.ToString(); var finalUidValue = accountData.Uid.ToString();
var finalTokenValue = accountByEmail.GenerateComboToken(); var finalTokenValue = accountData.GenerateComboToken();
object emailLoginRsp = new object emailLoginRsp = new
{ {
@@ -286,14 +291,14 @@ public class RouteController : ControllerBase
isFirstLogin = false, isFirstLogin = false,
isNeedKoreaSciAuth = false, isNeedKoreaSciAuth = false,
ksOpenId = $"ks_{finalUidValue}", ksOpenId = $"ks_{finalUidValue}",
nickname = accountByEmail.Username, nickname = accountData.Username,
passportId = finalUidValue, passportId = finalUidValue,
playerFillAgeUrl = "", playerFillAgeUrl = "",
status = 0, status = 0,
thirdPartyUid = "", thirdPartyUid = "",
token = finalTokenValue, token = finalTokenValue,
type = "guest", type = "guest",
uid = accountByEmail.Uid uid = accountData.Uid
}, },
msg = "操作成功" msg = "操作成功"
}; };