Skip to content

Composables

useAuth

ts
const auth = useAuth();

useAuth() Trả về một $auth instance. Bạn có thể truy cập vào các property và method của $auth thông qua composable này, ví dụ như user, loggedIn.

ts
const { user, loggedIn } = auth;

Interface

ts
interface AuthService {
  config: AuthConfig;
  httpService: HttpService;
  storage: AuthStorage;
  readonly user: Ref<User | null>;
  readonly store: Store<'auth', State, Getters, Actions>;
  readonly redirectPath: string;
  readonly accessToken: string | null | undefined;
  readonly refreshToken: string | null | undefined;
  readonly loggedIn: Ref<boolean>;
  readonly hasTokens: boolean;
  readonly isSessionExpired: boolean;
  readonly isSessionEnd: boolean;
  readonly isPersistent: boolean;
  login<T = unknown>(
    credentials: Record<string, unknown>,
    options?: { sessionOnly?: boolean }
  ): Promise<T>;
  fetchUser<T = unknown>(): Promise<T>;
  logout(callApi?: boolean): Promise<void>;
  refreshTokens<T = unknown>(): Promise<T>;
  setReferer(url: string | null): void;
}

useLogin

ts
const {
  credentials,
  pending,
  errorMsg,
  error,
  login,
  resetError
} = useLogin({
  credentials: { email: '', password: '' },
});

UseLoginOptions

Composable useLogin nhận vào một object options với các thuộc tính như sau:

PropertyTypeDefaultDescription
redirectPath(auth: Auth) => RawLocation | RawLocation | undefined'/'Đường dẫn chuyển hướng sau khi login. Có thể sử dụng callback với tham số đầu vào là object $auth và trả về một RawLacation
credentialsany{}Object chứa thông tin đăng nhập.
persistentboolean | undefinedtrueSet true để ghi nhớ phiên đăng nhập.
invalidErrorMessagestring | undefined'Invalid login credentials'Message lỗi khi đăng nhập không thành công.
otherErrorMessagestring | undefined'An error has occurred'Message lỗi khi đăng nhập gặp lỗi không xác định.

Return value

PropertyTypeDescription
credentialsRef<any>Chứa thông tin đăng nhập.
persistentRef<boolean>Dùng cho checkbox "Ghi nhớ đăng nhập".
errorMsgComputedRef<string | null>Message lỗi.
errorRef<any>Object lỗi chứa lỗi khi đăng nhập thất bại
pendingRef<boolean>Có giá trị true khi đang thực hiện đăng nhập.
resetError() => voidDùng để clear giá trị của ref error.
login() => Promise<any>Hàm handle login, trả về giá trị của hàm login, nhận 2 tham số đầu vào như sau:
- params?: Record<string, unknown>: thông tin đăng nhập, nếu không truyền vào sẽ sử dụng thông tin trong ref credentials.
- { sessionOnly }: { sessionOnly?: boolean } = {}: Set sessionOnly = true nếu không "remember me".

Interfaces

ts
useLogin = (options: UseLoginOptions = {}): UseLoginReturns;

interface UseLoginOptions {
  redirectPath?: RawLocation;
  credentials?: any;
  persistent?: boolean;
  invalidErrorMessage?: string;
  otherErrorMessage?: string;
}

type UseLoginReturns = {
  credentials: Ref<any>;
  persistent: Ref<boolean>;
  errorMsg: ComputedRef<string | null>;
  error: Ref<any>;
  pending: Ref<boolean>;
  resetError: () => void;
  login: (
    params?: Record<string, unknown>,
    { sessionOnly }?: { sessionOnly?: boolean }
  ) => Promise<any>;
}

useLogout

ts
const useLogout = (redirectPath: RawLocation = '/') => {
  errorMsg,
  pending,
  doLogout,
}

Parameters

ParameterTypeDefaultDescription
redirectPathRawLocation'/'Đường dẫn chuyển trang sau khi logout.

Return values

PropertyTypeDescription
errorMsgComputedRef<string | null>Message lỗi.
pendingRef<boolean>Có giá trị true khi đang thực hiện logout.
doLogout() => voidHàm handle logout.