@rytass/member-base-nestjs-module
Version:
Rytass Member System NestJS Base Module
49 lines (48 loc) • 3.62 kB
TypeScript
import { OnApplicationBootstrap } from '@nestjs/common';
import { DeepPartial, Repository } from 'typeorm';
import { BaseMemberEntity } from '../models/base-member.entity';
import type { AuthTokenPayloadBase } from '../typings/auth-token-payload';
import { MemberLoginLogEntity } from '../models/member-login-log.entity';
import { TokenPairDto } from '../dto/token-pair.dto';
import { MemberBaseModuleOptionsDTO } from '../typings/member-base-module-options.dto';
import { PasswordValidatorService } from './password-validator.service';
import { MemberPasswordHistoryEntity } from '../models/member-password-history.entity';
export declare class MemberBaseService<MemberEntity extends BaseMemberEntity = BaseMemberEntity> implements OnApplicationBootstrap {
private readonly originalProvidedOptions;
private readonly baseMemberRepo;
private readonly memberLoginLogRepo;
private readonly loginFailedBanThreshold;
private readonly resetPasswordTokenExpiration;
private readonly resetPasswordTokenSecret;
private readonly accessTokenSecret;
private readonly accessTokenExpiration;
private readonly refreshTokenSecret;
private readonly refreshTokenExpiration;
private readonly onlyResetRefreshTokenExpirationByPassword;
private readonly memberPasswordHistoryRepo;
private readonly passwordAgeLimitInDays;
private readonly forceRejectLoginOnPasswordExpired;
private readonly passwordValidatorService;
private readonly customizedJwtPayload;
private readonly loginFailedAutoUnlockSeconds;
constructor(originalProvidedOptions: MemberBaseModuleOptionsDTO | undefined, baseMemberRepo: Repository<BaseMemberEntity>, memberLoginLogRepo: Repository<MemberLoginLogEntity>, loginFailedBanThreshold: number, resetPasswordTokenExpiration: number, resetPasswordTokenSecret: string, accessTokenSecret: string, accessTokenExpiration: number, refreshTokenSecret: string, refreshTokenExpiration: number, onlyResetRefreshTokenExpirationByPassword: boolean, memberPasswordHistoryRepo: Repository<MemberPasswordHistoryEntity>, passwordAgeLimitInDays: number | undefined, forceRejectLoginOnPasswordExpired: boolean, passwordValidatorService: PasswordValidatorService, customizedJwtPayload: (member: MemberEntity) => AuthTokenPayloadBase, loginFailedAutoUnlockSeconds: number | null);
private readonly logger;
onApplicationBootstrap(): void;
signRefreshToken(member: MemberEntity, domain?: string): string;
signAccessToken(member: MemberEntity, domain?: string): string;
getResetPasswordToken(account: string): Promise<string>;
changePassword<T extends MemberEntity = MemberEntity>(id: string, originPassword: string, newPassword: string): Promise<T>;
changePasswordWithToken<T extends MemberEntity = MemberEntity>(token: string, newPassword: string): Promise<T>;
register<T extends MemberEntity = MemberEntity>(account: string, password: string, memberOptions?: DeepPartial<Omit<T, 'account' | 'password'>>): Promise<T>;
registerWithoutPassword<T extends MemberEntity = MemberEntity>(account: string, memberOptions?: DeepPartial<Omit<T, 'account' | 'password'>>): Promise<[T, string]>;
refreshToken(refreshToken: string, options?: {
domain?: string;
}): Promise<TokenPairDto>;
login(account: string, password: string, ip?: string): Promise<TokenPairDto>;
login(account: string, password: string, options?: {
domain?: string;
ip?: string;
}): Promise<TokenPairDto>;
resetLoginFailedCounter<T extends MemberEntity = MemberEntity>(id: string): Promise<T>;
private validateExpiration;
}