Skip to main content

UsersEngine

Perseid engine extended with auth-related methods. Extends @perseid/server Engine class.


REFRESH_TOKEN_DURATION

Default duration before a refresh token expires.

protected readonly REFRESH_TOKEN_DURATION: number;

emailClient

Email client to use.

protected emailClient: EmailClient;

cacheClient

Cache client to use.

protected cacheClient: CacheClient;

settings

Auth engine settings.

protected settings: UsersEngineSettings;

generateCredentials

Generates new credentials (refresh/access tokens) for userId and deviceId.

protected generateCredentials(
userId: Id,
deviceId?: string,
): Credentials;

Parameters

  • userId: Id of the user to generate credentials for.
  • deviceId: Id of the device to generate credentials for. If not set, a new id will be created.

Returns

Generated credentials.

Usage

TODO

withAutomaticFields

Returns updated payload with automatic fields.

protected withAutomaticFields<Resource extends keyof DataModel & string>(
resource: Resource,
existingResource: DataModel[Resource] | null,
payload: Payload<DataModel[Resource]>,
context: CommandContext<DataModel>,
): Promise<Payload<DataModel[Resource]>>;

Parameters

  • deviceId: Id of the device to generate credentials for. If not set, a new id will be created.
  • resource: Type of resource for which to generate automatic fields.
  • existingResource: Existing resource being updated, if applicable, null otherwise.
  • payload: Payload to update.
  • context: Command context.

Returns

Payload with automatic fields.

Usage

TODO

checkAndUpdatePayload

Performs specific checks payload to make sure it is valid, and updates it if necessary.

protected checkAndUpdatePayload<Resource extends keyof DataModel & string>(
resource: Resource,
existingResource: DataModel[Resource] | null,
payload: Payload<DataModel[Resource]>,
context: CommandContext<DataModel>,
): Promise<Payload<DataModel[Resource]>>;

Parameters

  • context: Command context.
  • resource: Type of resource for which to check and update payload.
  • existingResource: Existing resource being updated, if applicable, null otherwise.
  • payload: Payload to validate and update.
  • context: Command context.

Usage

TODO

reset

Resets the whole system, including database, and re-creates root role and user.

public reset(rootEmail: string, rootPassword: string): Promise<void>;

Parameters

  • rootEmail: Email to use for root user.
  • rootPassword: Password to use for root user.

Usage

TODO

create

Creates a new resource.

public create<Resource extends keyof DataModel & string>(
resource: Resource,
payload: CreatePayload<DataModel[Resource]>,
options: ViewCommandOptions,
context: CommandContext<DataModel>,
): Promise<DataModel[Resource]>;

Parameters

  • rootPassword: Password to use for root user.
  • resource: Type of resource to create.
  • payload: New resource payload.
  • options: Command options.
  • context: Command context.

Returns

Newly created resource.

Usage

TODO

viewMe

Fetches information about current user.

public viewMe(context: CommandContext<DataModel>): Promise<DataModel['users']>;

Parameters

  • context: Command context.
  • context: Command context.

Returns

User information.

Usage

TODO

verifyToken

Verifies accessToken validity.

public verifyToken(
accessToken: string,
ignoreExpiration: boolean,
context: CommandContext<DataModel>,
): Promise<Id>;

Parameters

  • context: Command context.
  • accessToken: Access token to verify.
  • ignoreExpiration: Whether to ignore access token expiration.
  • context: Command context.

Returns

Id of the user related to the access token.

Usage

TODO

signUp

Signs a new user up in the system.

public signUp(
email: DataModel['users']['email'],
password: DataModel['users']['password'],
passwordConfirmation: DataModel['users']['password'],
context: CommandContext<DataModel>,
): Promise<Credentials>;

Parameters

  • context: Command context.
  • email: User email.
  • password: User password.
  • passwordConfirmation: User password confirmation.
  • context: Command context.

Returns

New credentials.

Throws

  • If device id is not valid.

Usage

TODO

signIn

Signs an existing user in.

public signIn(
email: string,
password: string,
context: Omit<CommandContext<DataModel>, 'user'>,
): Promise<Credentials>;

Parameters

  • context: Command context.
  • email: User email.
  • password: User password.
  • context: Command context.

Returns

New credentials.

Throws

  • If password and confirmation mismatch.
  • If user with email email does not exist.

Usage

TODO

requestEmailVerification

Sends a new verification email to connected user.

public requestEmailVerification(context: CommandContext<DataModel>): Promise<void>;

Parameters

  • context: Command context.
  • context: Command context.

Throws

  • If password does not match user password.

Usage

TODO

verifyEmail

Verifies email of the connected user.

public verifyEmail(
verificationToken: string,
context: CommandContext<DataModel>,
): Promise<void>;

Parameters

  • context: Command context.
  • token: Verification token that was sent in the verification email.
  • context: Command context.

Throws

  • If user email is already verified.

Usage

TODO

requestPasswordReset

Sends a new password reset email to user with email email.

public requestPasswordReset(email: string): Promise<void>;

Parameters

  • context: Command context.
  • email: Email of the user to whom to send password reset email.
  • context:

Usage

TODO

resetPassword

Resets password for user with email email.

public resetPassword(
password: DataModel['users']['password'],
passwordConfirmation: DataModel['users']['password'],
resetToken: string,
): Promise<void>;

Parameters

  • context:
  • password: New password.
  • passwordConfirmation: New password confirmation.
  • resetToken: Reset token sent in the password reset email.

Throws

  • If verification token is not valid.
  • If password and confirmation mismatch.

Usage

TODO

refreshToken

Refreshes access token for connected user.

public refreshToken(
refreshToken: string,
context: CommandContext<DataModel>,
): Promise<Credentials>;

Parameters

  • resetToken: Reset token sent in the password reset email.
  • refreshToken: Refresh token to use to refresh access token.
  • context: Command context.

Returns

New credentials.

Throws

  • If reset token is not valid.

Usage

TODO

signOut

Signs connected user out.

public signOut(context: CommandContext<DataModel>): Promise<void>;

Parameters

  • context: Command context.
  • context: Command context.

Usage

TODO