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
abstractprotectedaliasClass:any
Defined in: src/routes/BaseAccountRoute.ts:32
aliasRepo?
protectedoptionalaliasRepo?:RepoUtils<A>
Defined in: src/routes/BaseAccountRoute.ts:61
defaultScopes
protecteddefaultScopes:string[] =[]
Defined in: src/routes/BaseAccountRoute.ts:41
jwtConfig?
protectedoptionaljwtConfig?:any
Defined in: src/routes/BaseAccountRoute.ts:44
logger
protectedlogger:any
Defined in: src/routes/BaseAccountRoute.ts:50
messagingUtils?
protectedoptionalmessagingUtils?:MessagingUtils
Defined in: src/routes/BaseAccountRoute.ts:53
profileClass
abstractprotectedprofileClass:any
Defined in: src/routes/BaseAccountRoute.ts:33
profileRepo?
protectedoptionalprofileRepo?:RepoUtils<P>
Defined in: src/routes/BaseAccountRoute.ts:62
rateLimiter?
protectedoptionalrateLimiter?:RateLimiter
Defined in: src/routes/BaseAccountRoute.ts:59
secretClass
abstractprotectedsecretClass:any
Defined in: src/routes/BaseAccountRoute.ts:34
secretRepo?
protectedoptionalsecretRepo?:RepoUtils<S>
Defined in: src/routes/BaseAccountRoute.ts:63
tokenUtils?
protectedoptionaltokenUtils?:TokenUtils
Defined in: src/routes/BaseAccountRoute.ts:56
trustedProxies
protectedtrustedProxies:string[] =[]
Defined in: src/routes/BaseAccountRoute.ts:67
trustedRoles
protectedtrustedRoles:string[]
Defined in: src/routes/BaseAccountRoute.ts:47
userClass
abstractprotecteduserClass:any
Defined in: src/routes/BaseAccountRoute.ts:35
userRepo?
protectedoptionaluserRepo?:RepoUtils<U>
Defined in: src/routes/BaseAccountRoute.ts:64
Methods
cleanSecretData()
protectedcleanSecretData(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()
protectedinitialize():Promise<void>
Defined in: src/routes/BaseAccountRoute.ts:70
Returns
Promise<void>
resolveOwnedUid()
protectedresolveOwnedUid(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>