@next-auth-oauth/wechatmp
Version:
基于Auth.js的微信公众号验证码登录、二维码扫描登录插件
87 lines (86 loc) • 2.54 kB
TypeScript
export type CaptchaManagerConfig = {
/**
* 过期时间
* @default 60000 (1min)
*/
expireTime: number;
/**
* 验证码长度
* @default 6
*/
length: number;
};
/**
* CaptchaManager 接口定义了验证码管理的基本操作
*
* @template T - 与验证码关联的数据类型,默认为包含 openid 和可选 unionid 的对象
*/
export interface CaptchaManager<T = {
openid: string;
unionid?: string;
}> {
/**
* 生成一个新的验证码
*
* @param {string} [code] - 可选参数,如果提供,将使用此代码作为验证码
* @returns {Promise<string>} 返回生成的验证码
*/
generate(code?: string): Promise<string>;
/**
* 更新与验证码关联的数据
*
* @param {string} captcha - 要更新的验证码
* @param {T} data - 要与验证码关联的新数据
* @returns {Promise<boolean>} 如果更新成功返回 true,否则返回 false
*/
updateData(captcha: string, data: T): Promise<boolean>;
/**
* 获取与验证码关联的数据
*
* @param {string} captcha - 要查询的验证码
* @returns {Promise<T | undefined>} 返回与验证码关联的数据,如果验证码不存在或已过期则返回 undefined
*/
getData(captcha: string): Promise<T | undefined>;
/**
* 检查验证码是否存在
*
* @param {string} captcha - 要检查的验证码
* @returns {Promise<boolean>} 如果验证码存在且未过期返回 true,否则返回 false
*/
exists(captcha: string): Promise<boolean>;
/**
* 列出所有当前有效的验证码
*
* @returns {Promise<string[]>} 返回一个包含所有有效验证码的数组
*/
list(): Promise<string[]>;
}
export declare class MemoryCaptchaManager<T = {
openid: string;
unionid?: string;
}> implements CaptchaManager<T> {
private options;
private cache;
constructor(options?: CaptchaManagerConfig);
exists(captcha: string): Promise<boolean>;
/**
* 生成验证码
*/
generate(code?: string): Promise<string>;
/**
* 更新验证码绑定的数据
* @param captcha
* @param data
*/
updateData(captcha: string, data: T): Promise<boolean>;
/**
* 获取验证码绑定的数据
* @param captcha
*/
getData(captcha: string): Promise<T | undefined>;
/**
* 清理过期的验证码
*/
private cleanupExpired;
list(): Promise<string[]>;
}