using MySqlConnector; using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace UGQApiServer.Auth { public class AuthSql { readonly string _ssoAccountDb; public AuthSql(IConfiguration configuration) { _ssoAccountDb = configuration["SSOAccount:SsoAccountDb"] ?? ""; } public async Task getAccountIdFromMysql(string email) { var result = new Result(); var err_msg = string.Empty; bool is_found_account_id = false; ulong account_id = 0; try { var read_func = delegate (MySqlDataReader dataReader) { is_found_account_id = true; account_id = dataReader.GetUInt64("id"); return ServerErrorCode.Success; }; var query = $"SELECT * FROM wallet_user WHERE email = '{email}'"; Console.WriteLine(query); // 1. 계정 존재 여부와 AccessToken의 동일 여부를 통합인증DB의 정보 참조하여 체크 한다. result = await MySqlConnectorHelper.simpleQueryExecuteForReaderAsync( $"SELECT * FROM wallet_user WHERE email = '{email}'", read_func, _ssoAccountDb); if (result.isFail()) { err_msg = $"Failed to simpleQueryExecuteForReaderAsync() for SsoAccountDb !!! : email:{email}, {result.toBasicString()}"; Log.getLogger().error(err_msg); return 0; } if (false == is_found_account_id) { err_msg = $"Not found Account ID in SsoAccountDb !!! : email:{email}"; result.setFail(ServerErrorCode.AccountIdNotFoundInSsoAccountDb, err_msg); Log.getLogger().error(err_msg); return 0; } } catch (Exception e) { err_msg = $"Failed to query SsoAccountDb !!! : Exception:{e} - AccountId:{account_id}"; result.setFail(ServerErrorCode.MySqlDbQueryException, err_msg); Log.getLogger().error(result.toBasicString()); return 0; } return account_id; } } }