fix: login failure on u25 & u26 (#1967)

also updated the setGuildMotd response for the old UI before LongMOTD

Reviewed-on: OpenWF/SpaceNinjaServer#1967
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-05-02 22:14:44 -07:00 committed by Sainan
parent 468efed71c
commit 8ae5fcfad0
5 changed files with 30 additions and 16 deletions

View File

@ -18,6 +18,7 @@ export const getAllianceController: RequestHandler = async (req, res) => {
res.end(); res.end();
}; };
// POST request since U27
/*interface IGetAllianceRequest { /*interface IGetAllianceRequest {
memberCount: number; memberCount: number;
clanLeaderName: string; clanLeaderName: string;

View File

@ -101,30 +101,36 @@ const createLoginResponse = (myAddress: string, account: IDatabaseAccountJson, b
id: account.id, id: account.id,
DisplayName: account.DisplayName, DisplayName: account.DisplayName,
CountryCode: account.CountryCode, CountryCode: account.CountryCode,
ForceLogoutVersion: account.ForceLogoutVersion,
AmazonAuthToken: account.AmazonAuthToken, AmazonAuthToken: account.AmazonAuthToken,
AmazonRefreshToken: account.AmazonRefreshToken, AmazonRefreshToken: account.AmazonRefreshToken,
ConsentNeeded: account.ConsentNeeded, ConsentNeeded: account.ConsentNeeded,
TrackedSettings: account.TrackedSettings, TrackedSettings: account.TrackedSettings,
Nonce: account.Nonce, Nonce: account.Nonce,
Groups: [],
IRC: config.myIrcAddresses ?? [myAddress], IRC: config.myIrcAddresses ?? [myAddress],
NRS: config.NRS, NRS: config.NRS,
BuildLabel: buildLabel BuildLabel: buildLabel
}; };
if (version_compare(buildLabel, "2019.08.29.20.01") >= 0) {
// U25.7 and up
resp.ForceLogoutVersion = account.ForceLogoutVersion;
}
if (version_compare(buildLabel, "2019.10.31.22.42") >= 0) {
// U26 and up
resp.Groups = [];
}
if (version_compare(buildLabel, "2021.04.13.19.58") >= 0) { if (version_compare(buildLabel, "2021.04.13.19.58") >= 0) {
resp.DTLS = 99; resp.DTLS = 99;
if (version_compare(buildLabel, "2022.04.29.12.53") >= 0) { }
resp.ClientType = account.ClientType; if (version_compare(buildLabel, "2022.04.29.12.53") >= 0) {
if (version_compare(buildLabel, "2022.09.06.19.24") >= 0) { resp.ClientType = account.ClientType;
resp.CrossPlatformAllowed = account.CrossPlatformAllowed; }
resp.HUB = `https://${myAddress}/api/`; if (version_compare(buildLabel, "2022.09.06.19.24") >= 0) {
resp.MatchmakingBuildId = buildConfig.matchmakingBuildId; resp.CrossPlatformAllowed = account.CrossPlatformAllowed;
if (version_compare(buildLabel, "2023.04.25.23.40") >= 0) { resp.HUB = `https://${myAddress}/api/`;
resp.platformCDNs = [`https://${myAddress}/`]; resp.MatchmakingBuildId = buildConfig.matchmakingBuildId;
} }
} if (version_compare(buildLabel, "2023.04.25.23.40") >= 0) {
} resp.platformCDNs = [`https://${myAddress}/`];
} }
return resp; return resp;
}; };

View File

@ -2,6 +2,7 @@ import { Alliance, Guild, GuildMember } from "@/src/models/guildModel";
import { hasGuildPermissionEx } from "@/src/services/guildService"; import { hasGuildPermissionEx } from "@/src/services/guildService";
import { getInventory } from "@/src/services/inventoryService"; import { getInventory } from "@/src/services/inventoryService";
import { getAccountForRequest, getSuffixedName } from "@/src/services/loginService"; import { getAccountForRequest, getSuffixedName } from "@/src/services/loginService";
import { version_compare } from "@/src/services/worldStateService";
import { GuildPermission, ILongMOTD } from "@/src/types/guildTypes"; import { GuildPermission, ILongMOTD } from "@/src/types/guildTypes";
import { RequestHandler } from "express"; import { RequestHandler } from "express";
@ -55,5 +56,9 @@ export const setGuildMotdController: RequestHandler = async (req, res) => {
await guild.save(); await guild.save();
} }
res.json({ IsLongMOTD, MOTD }); if (!account.BuildLabel || version_compare(account.BuildLabel, "2020.03.24.20.24") > 0) {
res.json({ IsLongMOTD, MOTD });
} else {
res.send(MOTD).end();
}
}; };

View File

@ -170,6 +170,7 @@ apiRouter.get("/deleteSession.php", deleteSessionController);
apiRouter.get("/divvyAllianceVault.php", divvyAllianceVaultController); apiRouter.get("/divvyAllianceVault.php", divvyAllianceVaultController);
apiRouter.get("/dojo", dojoController); apiRouter.get("/dojo", dojoController);
apiRouter.get("/drones.php", dronesController); apiRouter.get("/drones.php", dronesController);
apiRouter.get("/getAlliance.php", getAllianceController);
apiRouter.get("/getDailyDealStockLevels.php", getDailyDealStockLevelsController); apiRouter.get("/getDailyDealStockLevels.php", getDailyDealStockLevelsController);
apiRouter.get("/getFriends.php", getFriendsController); apiRouter.get("/getFriends.php", getFriendsController);
apiRouter.get("/getGuild.php", getGuildController); apiRouter.get("/getGuild.php", getGuildController);
@ -308,6 +309,7 @@ apiRouter.post("/trainingResult.php", trainingResultController);
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController); apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
apiRouter.post("/updateAlignment.php", updateAlignmentController); apiRouter.post("/updateAlignment.php", updateAlignmentController);
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController); apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
apiRouter.post("/updateInventory.php", missionInventoryUpdateController); // U26 and below
apiRouter.post("/updateNodeIntros.php", genericUpdateController); apiRouter.post("/updateNodeIntros.php", genericUpdateController);
apiRouter.post("/updateQuest.php", updateQuestController); apiRouter.post("/updateQuest.php", updateQuestController);
apiRouter.post("/updateSession.php", updateSessionPostController); apiRouter.post("/updateSession.php", updateSessionPostController);

View File

@ -5,7 +5,7 @@ export interface IAccountAndLoginResponseCommons {
CountryCode: string; CountryCode: string;
ClientType?: string; ClientType?: string;
CrossPlatformAllowed?: boolean; CrossPlatformAllowed?: boolean;
ForceLogoutVersion: number; ForceLogoutVersion?: number;
AmazonAuthToken?: string; AmazonAuthToken?: string;
AmazonRefreshToken?: string; AmazonRefreshToken?: string;
ConsentNeeded: boolean; ConsentNeeded: boolean;
@ -45,7 +45,7 @@ export interface ILoginRequest {
export interface ILoginResponse extends IAccountAndLoginResponseCommons { export interface ILoginResponse extends IAccountAndLoginResponseCommons {
id: string; id: string;
Groups: IGroup[]; Groups?: IGroup[];
BuildLabel: string; BuildLabel: string;
MatchmakingBuildId?: string; MatchmakingBuildId?: string;
platformCDNs?: string[]; platformCDNs?: string[];