auth-vir - v2.3.9
    Preparing search index...

    Class BackendAuthClient<DatabaseUser, UserId, AssumedUserParams, CsrfHeaderName>

    An auth client for creating and validating JWTs embedded in cookies. This should only be used in a backend environment as it accesses native Node packages.

    Type Parameters

    • DatabaseUser extends AnyObject
    • UserId extends string | number
    • AssumedUserParams extends AnyObject = EmptyObject
    • CsrfHeaderName extends string = CsrfToken
    Index

    Constructors

    Properties

    cachedParsedJwtKeys: Record<string, Readonly<JwtKeys>> = {}

    Methods

    • Use these headers to log a user in.

      Parameters

      • __namedParameters: { isSignUpCookie: boolean; requestHeaders: IncomingHttpHeaders; userId: UserId }

      Returns Promise<OutgoingHttpHeaders>

    • Use these headers to log out the user.

      Parameters

      • params: _RequireExactlyOne<{ allCookies: true; isSignUpCookie: boolean }>

      Returns Promise<Partial<Record<CsrfHeaderName, string>> & { "set-cookie": string[] }>

    • Get all the parameters used for cookie generation.

      Parameters

      • __namedParameters: { isSignUpCookie?: boolean }
        • OptionalisSignUpCookie?: boolean

          Set this to true when we are setting the initial cookie right after a user signs up. This allows them to auto-authorize when they verify their email address.

          This should only be set to true when a new user is signing up.

      Returns Promise<Readonly<CookieParams>>

    • Combines .getInsecureUser() and .getSecureUser() into one method.

      Parameters

      • params: {
            allowUserAuthRefresh: boolean;
            isSignUpCookie: boolean;
            requestHeaders: IncomingHttpHeaders;
        }
        • allowUserAuthRefresh: boolean

          If true, this method will generate headers to refresh the user's auth session. This should likely only be done with a specific endpoint, like whatever endpoint you trigger with the frontend auth client's checkUser.performCheck callback.

        • isSignUpCookie: boolean
        • requestHeaders: IncomingHttpHeaders

      Returns Promise<
          _RequireOneOrNone<
              {
                  insecureUser: GetUserResult<DatabaseUser>;
                  secureUser: GetUserResult<DatabaseUser>;
              },
              "secureUser"
              | "insecureUser",
          >,
      >

    • Parameters

      • __namedParameters: { allowUserAuthRefresh: boolean; requestHeaders: IncomingHttpHeaders }
        • allowUserAuthRefresh: boolean

          If true, this method will generate headers to refresh the user's auth session. This should likely only be done with a specific endpoint, like whatever endpoint you trigger with the frontend auth client's checkUser.performCheck callback.

        • requestHeaders: IncomingHttpHeaders

      Returns Promise<GetUserResult<DatabaseUser> | undefined>

      This only half authenticates the user. It should only be used in circumstances where JavaScript cannot be used to attach the CSRF token header to the request (like when opening a PDF file). Use .getSecureUser() instead, whenever possible.

    • Securely extract a user from their request headers.

      Parameters

      • __namedParameters: {
            allowUserAuthRefresh: boolean;
            isSignUpCookie: boolean;
            requestHeaders: IncomingHttpHeaders;
        }
        • allowUserAuthRefresh: boolean

          If true, this method will generate headers to refresh the user's auth session. This should likely only be done with a specific endpoint, like whatever endpoint you trigger with the frontend auth client's checkUser.performCheck callback.

        • isSignUpCookie: boolean
        • requestHeaders: IncomingHttpHeaders

      Returns Promise<GetUserResult<DatabaseUser> | undefined>