Skip to main content

Abstract Class: BaseAccountRoute<U, A, P, S>

Defined in: src/routes/BaseAccountRoute.ts:31

Provides a single set of routes for working with a user's account data in aggregate.

Extended by

Type Parameters

U

U extends User

A

A extends Alias

P

P extends Profile

S

S extends Secret

Constructors

Constructor

new BaseAccountRoute<U, A, P, S>(): BaseAccountRoute<U, A, P, S>

Returns

BaseAccountRoute<U, A, P, S>

Properties

aliasClass

abstract protected aliasClass: any

Defined in: src/routes/BaseAccountRoute.ts:32


aliasRepo?

protected optional aliasRepo?: RepoUtils<A>

Defined in: src/routes/BaseAccountRoute.ts:61


defaultScopes

protected defaultScopes: string[] = []

Defined in: src/routes/BaseAccountRoute.ts:41


jwtConfig?

protected optional jwtConfig?: any

Defined in: src/routes/BaseAccountRoute.ts:44


logger

protected logger: any

Defined in: src/routes/BaseAccountRoute.ts:50


messagingUtils?

protected optional messagingUtils?: MessagingUtils

Defined in: src/routes/BaseAccountRoute.ts:53


profileClass

abstract protected profileClass: any

Defined in: src/routes/BaseAccountRoute.ts:33


profileRepo?

protected optional profileRepo?: RepoUtils<P>

Defined in: src/routes/BaseAccountRoute.ts:62


rateLimiter?

protected optional rateLimiter?: RateLimiter

Defined in: src/routes/BaseAccountRoute.ts:59


secretClass

abstract protected secretClass: any

Defined in: src/routes/BaseAccountRoute.ts:34


secretRepo?

protected optional secretRepo?: RepoUtils<S>

Defined in: src/routes/BaseAccountRoute.ts:63


tokenUtils?

protected optional tokenUtils?: TokenUtils

Defined in: src/routes/BaseAccountRoute.ts:56


trustedProxies

protected trustedProxies: string[] = []

Defined in: src/routes/BaseAccountRoute.ts:67


trustedRoles

protected trustedRoles: string[]

Defined in: src/routes/BaseAccountRoute.ts:47


userClass

abstract protected userClass: any

Defined in: src/routes/BaseAccountRoute.ts:35


userRepo?

protected optional userRepo?: RepoUtils<U>

Defined in: src/routes/BaseAccountRoute.ts:64

Methods

cleanSecretData()

protected cleanSecretData(obj): void

Defined in: src/routes/BaseAccountRoute.ts:107

Removes the data property from the secret(s) to protect sensitive information.

Parameters

obj

S | S[]

Returns

void


delete()

delete(id, req, user): Promise<any>

Defined in: src/routes/BaseAccountRoute.ts:119

Parameters

id

string

req

HttpRequest

user

JWTUser

Returns

Promise<any>


get()

get(id, user): Promise<any>

Defined in: src/routes/BaseAccountRoute.ts:151

Parameters

id

string

user

JWTUser

Returns

Promise<any>


initialize()

protected initialize(): Promise<void>

Defined in: src/routes/BaseAccountRoute.ts:70

Returns

Promise<void>


resolveOwnedUid()

protected resolveOwnedUid(id, user): string

Defined in: src/routes/BaseAccountRoute.ts:235

Resolves id (handling the "me" keyword) and verifies the caller either owns the targeted account (targetUid === user.uid) or holds a trusted role. Throws 403 otherwise.

Parameters

id

string

user

JWTUser

Returns

string


revokeSessions()

revokeSessions(id, req, user): Promise<void>

Defined in: src/routes/BaseAccountRoute.ts:205

Immediately revokes every outstanding refresh token for the account (self-service, or any account's if the caller holds a trusted role) — the standard "log out everywhere" action, e.g. after a suspected account compromise.

This does NOT invalidate an already-issued access token, which remains valid until its own natural (short) expiry regardless of this call — true immediate access-token revocation would require a persistent revocation check on every single request, which the underlying JWT verification (@rapidrest/service-core's JWTStrategy, an external package this library doesn't control) doesn't support; it does a stateless signature/expiry check only, with no per-request datastore lookup. What this does reliably stop going forward is BaseAuthRefreshRoute minting any new access token from a refresh token issued before this call — see the iat check there. This includes the caller's own current session: there is no "everywhere but here" variant, matching the equivalent behavior in most other systems that offer this action.

Parameters

id

string

req

HttpRequest

user

JWTUser

Returns

Promise<void>