supertokens-node
    Preparing search index...

    Type Alias RecipeInterface

    type RecipeInterface = {
        consumePasswordResetToken(
            input: { tenantId: string; token: string; userContext: UserContext },
        ): Promise<
            | { email: string; status: "OK"; userId: string }
            | { status: "RESET_PASSWORD_INVALID_TOKEN_ERROR" },
        >;
        createNewRecipeUser(
            input: {
                email: string;
                password: string;
                tenantId: string;
                userContext: UserContext;
            },
        ): Promise<
            | { recipeUserId: RecipeUserId; status: "OK"; user: User }
            | { status: "EMAIL_ALREADY_EXISTS_ERROR" },
        >;
        createResetPasswordToken(
            input: {
                email: string;
                tenantId: string;
                userContext: UserContext;
                userId: string;
            },
        ): Promise<
            { status: "OK"; token: string }
            | { status: "UNKNOWN_USER_ID_ERROR" },
        >;
        signIn(
            input: {
                email: string;
                password: string;
                session: SessionContainer | undefined;
                shouldTryLinkingWithSessionUser: boolean | undefined;
                tenantId: string;
                userContext: UserContext;
            },
        ): Promise<
            | { recipeUserId: RecipeUserId; status: "OK"; user: User }
            | { status: "WRONG_CREDENTIALS_ERROR" }
            | {
                reason:
                    | "EMAIL_VERIFICATION_REQUIRED"
                    | "RECIPE_USER_ID_ALREADY_LINKED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                    | "ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                    | "SESSION_USER_ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR";
                status: "LINKING_TO_SESSION_USER_FAILED";
            },
        >;
        signUp(
            input: {
                email: string;
                password: string;
                session: SessionContainer | undefined;
                shouldTryLinkingWithSessionUser: boolean | undefined;
                tenantId: string;
                userContext: UserContext;
            },
        ): Promise<
            | { recipeUserId: RecipeUserId; status: "OK"; user: User }
            | { status: "EMAIL_ALREADY_EXISTS_ERROR" }
            | {
                reason:
                    | "EMAIL_VERIFICATION_REQUIRED"
                    | "RECIPE_USER_ID_ALREADY_LINKED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                    | "ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                    | "SESSION_USER_ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR";
                status: "LINKING_TO_SESSION_USER_FAILED";
            },
        >;
        updateEmailOrPassword(
            input: {
                applyPasswordPolicy?: boolean;
                email?: string;
                password?: string;
                recipeUserId: RecipeUserId;
                tenantIdForPasswordPolicy: string;
                userContext: UserContext;
            },
        ): Promise<
            | {
                status: "OK"
                | "UNKNOWN_USER_ID_ERROR"
                | "EMAIL_ALREADY_EXISTS_ERROR";
            }
            | { reason: string; status: "EMAIL_CHANGE_NOT_ALLOWED_ERROR" }
            | { failureReason: string; status: "PASSWORD_POLICY_VIOLATED_ERROR" },
        >;
        verifyCredentials(
            input: {
                email: string;
                password: string;
                tenantId: string;
                userContext: UserContext;
            },
        ): Promise<
            | { recipeUserId: RecipeUserId; status: "OK"; user: User }
            | { status: "WRONG_CREDENTIALS_ERROR" },
        >;
    }
    Index

    Methods

    • Parameters

      • input: { tenantId: string; token: string; userContext: UserContext }

      Returns Promise<
          | { email: string; status: "OK"; userId: string }
          | { status: "RESET_PASSWORD_INVALID_TOKEN_ERROR" },
      >

    • Parameters

      • input: { email: string; password: string; tenantId: string; userContext: UserContext }

      Returns Promise<
          | { recipeUserId: RecipeUserId; status: "OK"; user: User }
          | { status: "EMAIL_ALREADY_EXISTS_ERROR" },
      >

    • We pass in the email as well to this function cause the input userId may not be associated with an emailpassword account. In this case, we need to know which email to use to create an emailpassword account later on.

      Parameters

      • input: { email: string; tenantId: string; userContext: UserContext; userId: string }

      Returns Promise<{ status: "OK"; token: string } | { status: "UNKNOWN_USER_ID_ERROR" }>

    • Parameters

      • input: {
            email: string;
            password: string;
            session: SessionContainer | undefined;
            shouldTryLinkingWithSessionUser: boolean | undefined;
            tenantId: string;
            userContext: UserContext;
        }

      Returns Promise<
          | { recipeUserId: RecipeUserId; status: "OK"; user: User }
          | { status: "WRONG_CREDENTIALS_ERROR" }
          | {
              reason:
                  | "EMAIL_VERIFICATION_REQUIRED"
                  | "RECIPE_USER_ID_ALREADY_LINKED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                  | "ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                  | "SESSION_USER_ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR";
              status: "LINKING_TO_SESSION_USER_FAILED";
          },
      >

    • Parameters

      • input: {
            email: string;
            password: string;
            session: SessionContainer | undefined;
            shouldTryLinkingWithSessionUser: boolean | undefined;
            tenantId: string;
            userContext: UserContext;
        }

      Returns Promise<
          | { recipeUserId: RecipeUserId; status: "OK"; user: User }
          | { status: "EMAIL_ALREADY_EXISTS_ERROR" }
          | {
              reason:
                  | "EMAIL_VERIFICATION_REQUIRED"
                  | "RECIPE_USER_ID_ALREADY_LINKED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                  | "ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR"
                  | "SESSION_USER_ACCOUNT_INFO_ALREADY_ASSOCIATED_WITH_ANOTHER_PRIMARY_USER_ID_ERROR";
              status: "LINKING_TO_SESSION_USER_FAILED";
          },
      >

    • Parameters

      • input: {
            applyPasswordPolicy?: boolean;
            email?: string;
            password?: string;
            recipeUserId: RecipeUserId;
            tenantIdForPasswordPolicy: string;
            userContext: UserContext;
        }

      Returns Promise<
          | {
              status: "OK"
              | "UNKNOWN_USER_ID_ERROR"
              | "EMAIL_ALREADY_EXISTS_ERROR";
          }
          | { reason: string; status: "EMAIL_CHANGE_NOT_ALLOWED_ERROR" }
          | { failureReason: string; status: "PASSWORD_POLICY_VIOLATED_ERROR" },
      >

    • Parameters

      • input: { email: string; password: string; tenantId: string; userContext: UserContext }

      Returns Promise<
          | { recipeUserId: RecipeUserId; status: "OK"; user: User }
          | { status: "WRONG_CREDENTIALS_ERROR" },
      >