auth-vir - v2.5.0
    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

    • Creates a 'cookie-set' header to refresh the user's session cookie.

      Parameters

      • __namedParameters: {
            requestHeaders: IncomingHttpHeaders;
            userIdResult: Readonly<UserIdResult<UserId>>;
        }

      Returns Promise<OutgoingHttpHeaders | undefined>

    • 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: Readonly<
            _RequireExactlyOne<
                { allCookies: true; isSignUpCookie: boolean },
                "allCookies" | "isSignUpCookie",
            > & { serviceOrigin?: string },
        >

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

    • Get all the parameters used for cookie generation.

      Parameters

      • __namedParameters: {
            isSignUpCookie: boolean;
            requestHeaders: Readonly<IncomingHttpHeaders> | undefined;
        }
        • isSignUpCookie: 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.

        • requestHeaders: Readonly<IncomingHttpHeaders> | undefined

      Returns Promise<Readonly<CookieParams>>

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

      Parameters

      • params: {
            allowUserAuthRefresh: boolean;
            isSignUpCookie: boolean;
            requestHeaders: IncomingHttpHeaders;
            serviceOrigin?: string;
        }
        • 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
        • OptionalserviceOrigin?: string

          Overrides the client's already established serviceOrigin.

      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>