mirror of
https://github.com/samuelthomas2774/nxapi.git
synced 2026-09-08 11:25:09 -05:00
Add coral/SplatNet 3 client
https://github.com/samuelthomas2774/nxapi/issues/42
This commit is contained in:
@@ -280,6 +280,14 @@ export default class CoralApi {
|
||||
return {nso: this.createWithSavedToken(data, useragent), data};
|
||||
}
|
||||
|
||||
static async createWithNintendoAccountToken(
|
||||
token: NintendoAccountToken, user: NintendoAccountUser,
|
||||
useragent = getAdditionalUserAgents()
|
||||
) {
|
||||
const data = await this.loginWithNintendoAccountToken(token, user, useragent);
|
||||
return {nso: this.createWithSavedToken(data, useragent), data};
|
||||
}
|
||||
|
||||
static createWithSavedToken(data: CoralAuthData, useragent = getAdditionalUserAgents()) {
|
||||
return new this(
|
||||
data.credential.accessToken,
|
||||
@@ -291,9 +299,7 @@ export default class CoralApi {
|
||||
|
||||
static async loginWithSessionToken(token: string, useragent = getAdditionalUserAgents()): Promise<CoralAuthData> {
|
||||
const { default: { coral: config } } = await import('../common/remote-config.js');
|
||||
|
||||
if (!config) throw new Error('Remote configuration prevents Coral authentication');
|
||||
const znca_useragent = `com.nintendo.znca/${config.znca_version}(${ZNCA_PLATFORM}/${ZNCA_PLATFORM_VERSION})`;
|
||||
|
||||
// Nintendo Account token
|
||||
const nintendoAccountToken = await getNintendoAccountToken(token, ZNCA_CLIENT_ID);
|
||||
@@ -301,6 +307,19 @@ export default class CoralApi {
|
||||
// Nintendo Account user data
|
||||
const user = await getNintendoAccountUser(nintendoAccountToken);
|
||||
|
||||
return this.loginWithNintendoAccountToken(nintendoAccountToken, user, useragent);
|
||||
}
|
||||
|
||||
static async loginWithNintendoAccountToken(
|
||||
nintendoAccountToken: NintendoAccountToken,
|
||||
user: NintendoAccountUser,
|
||||
useragent = getAdditionalUserAgents()
|
||||
) {
|
||||
const { default: { coral: config } } = await import('../common/remote-config.js');
|
||||
|
||||
if (!config) throw new Error('Remote configuration prevents Coral authentication');
|
||||
const znca_useragent = `com.nintendo.znca/${config.znca_version}(${ZNCA_PLATFORM}/${ZNCA_PLATFORM_VERSION})`;
|
||||
|
||||
const fdata = await f(nintendoAccountToken.id_token, HashMethod.CORAL, useragent);
|
||||
|
||||
debug('Getting Nintendo Switch Online app token');
|
||||
|
||||
@@ -116,7 +116,7 @@ export interface NintendoAccountSessionToken {
|
||||
code: string;
|
||||
}
|
||||
export interface NintendoAccountSessionTokenJwtPayload extends JwtPayload {
|
||||
jti: string;
|
||||
jti: number;
|
||||
typ: 'session_token';
|
||||
iss: 'https://accounts.nintendo.com';
|
||||
/** Unknown - scopes the token is valid for? */
|
||||
|
||||
Reference in New Issue
Block a user