import React from 'react'; import Sdk from 'casdoor-js-sdk'; import { SdkConfig } from 'casdoor-js-sdk/lib/cjs/sdk'; interface CallbackParams { code?: string; tokenId?: string; access_token?: string; refresh_token?: string; } type AuthParamListener = (params: CallbackParams) => void; /** * Hook:监听 URL 中 code 或 tokenId 参数的变化 * 仅在客户端生效,兼容 SSR * api请求方式不需要用到 */ declare function useListenAuthParams(): { setCallback: any; }; interface PasswordLoginData { username: string; password: string; autoSignin: boolean; } interface CasdoorConfig { serverUrl: string; clientId: string; organizationName: string; appName: string; redirectPath?: string; signinPath?: string; } interface AuthContextType { checkAuth: (tenant?: string) => Promise; getLoginUrl: () => string; getSignupUrl: () => string; login: (tenant: string) => void; logout: (tenant?: string) => void; switchTenant: (tenant: string) => Promise; refreshAuth: () => Promise; setAuthCallback: (callback: AuthParamListener) => void; apiLogin: (tenant: string, data: PasswordLoginData) => void; } declare const AuthProvider: ({ children }: { children: React.ReactNode; }) => React.JSX.Element; declare const useAuth: () => AuthContextType; declare class ZS_SDK extends Sdk { private application; constructor(config: SdkConfig); /** * 获取 casdoor的app信息,用于密码加密 */ initApplication(): Promise; /** * 在当前页面直接登录 Casdoor,不跳转登录页 * @param params 用户名密码等 * @returns 包含 code 的结果(可用于 exchangeForAccessToken) */ passwordLogin(params: PasswordLoginData): Promise<{ access_token: string; refresh_token: string; token_type: string; expires_in: number; scope: string; id_token: string; }>; /** * 对密码进行 SHA256 加密(Casdoor 要求) */ private hashPassword; /** * 生成 PKCE 参数(code_verifier + code_challenge + state) */ private generatePkceState; /** * 生成随机字符串 */ private generateRandomString; /** * SHA256 + Base64URL 编码 */ private sha256Base64; private arrayBufferToBase64Url; } //# sourceMappingURL=zs_sdk.d.ts.map declare const initAuthSdk: (config: CasdoorConfig) => ZS_SDK; declare const getAuthSDK: () => ZS_SDK; export { AuthContextType, AuthProvider, CasdoorConfig, getAuthSDK, initAuthSdk, useAuth, useListenAuthParams }; //# sourceMappingURL=index.d.ts.map