SpaceNinjaServer/src/types/loginTypes.ts
Sainan 2fa6dcc7ed
All checks were successful
Build / build (push) Successful in 48s
Build Docker image / docker-amd64 (push) Successful in 1m19s
Build Docker image / docker-arm64 (push) Successful in 1m1s
feat(webui): handle auth via websocket (#2226)
Now when logging in and out of the game, the webui is notified so it can refresh the nonce, removing the need for constant login requests to revalidate it.

Closes #2223

Reviewed-on: #2226
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
2025-06-21 07:26:43 -07:00

68 lines
1.5 KiB
TypeScript

import { Types } from "mongoose";
export interface IAccountAndLoginResponseCommons {
DisplayName: string;
CountryCode?: string;
ClientType?: string;
CrossPlatformAllowed?: boolean;
ForceLogoutVersion?: number;
AmazonAuthToken?: string;
AmazonRefreshToken?: string;
ConsentNeeded?: boolean;
TrackedSettings?: string[];
Nonce: number;
}
export interface IDatabaseAccountRequiredFields extends IAccountAndLoginResponseCommons {
email: string;
password: string;
BuildLabel?: string;
LastLogin: Date;
}
export interface IDatabaseAccount extends IDatabaseAccountRequiredFields {
Dropped?: boolean;
LatestEventMessageDate: Date;
LastLoginRewardDate: number;
LoginDays: number;
}
// Includes virtual ID
export interface IDatabaseAccountJson extends IDatabaseAccount {
id: string;
}
export interface ILoginRequest {
email: string;
password: string;
time: number;
s?: string;
lang?: string;
date: number;
ClientType?: string;
PS?: string;
kick?: boolean;
}
export interface ILoginResponse extends IAccountAndLoginResponseCommons {
id: string;
Groups?: IGroup[];
BuildLabel: string;
MatchmakingBuildId?: string;
platformCDNs?: string[];
NRS?: string[];
DTLS?: number;
IRC?: string[];
HUB?: string;
}
export interface IGroup {
experiment: string;
experimentGroup: string;
}
export interface IIgnore {
ignorer: Types.ObjectId;
ignoree: Types.ObjectId;
}