node-socialite
Version:
Socialite is an OAuth2 authentication tool for Node.js
184 lines (162 loc) • 3.7 kB
TypeScript
/**
* 授权后用户信息接口
*/
export declare interface UserInterface {
/**
* 服务商标识
*/
provider: string;
/**
* openid
*/
id: string;
/**
* 昵称
*/
nickname: string;
/**
* 昵称
*/
name: string;
/**
* 头像
*/
avatar: string;
/**
* E-mail
*/
email: string;
/**
* 原始数据
*/
raw: Record<string, any>;
/**
* AccessToken
*/
access_token: string;
/**
* RefreshToken
*/
refresh_token: string;
/**
* ExpiresIn
*/
expires_in: number;
}
/**
* 服务商接口
*/
export declare interface ProviderInterface {
/**
* 返回生成的授权地址
*/
getAuthUrl: () => string;
/**
* 返回获取token的接口地址
*/
getTokenUrl: () => string;
/**
* 根据token获取用户信息
* @param token tokenFromCode() 方法获取到的 token
*/
getUserByToken: (token: string) => Promise<Record<string, any>>;
/**
* 将用户信息映射为用户对象
* @param data getUserByToken() 方法获取到的用户信息
*/
mapUserToObject: (data: Record<string, any>) => UserInterface;
}
/**
* 服务商类(可new的构造函数)
*/
export declare interface ProviderConstructable {
new(config: ProviderConfig): ProviderInterface;
}
/**
* 本工具支持的服务商映射表,键名为服务商标识,键值为服务商类
*/
export declare interface SupportProviders {
[key: string]: ProviderConstructable;
}
/**
* 已解析的服务商映射表,键名为服务商标识,键值为服务商实例
*/
export declare interface ResolvedProviders {
[key: string]: ProviderInterface;
}
/**
* 服务商配置项
*/
export declare interface ProviderConfig {
/**
* 服务商,支持3种方法
*
* 1、本工具支持的,则填写对应服务商标识即可,如:'github', 'wechat'等;
*
* 2、自定义服务商,并且通过 SocialiteManager.extend() 方法扩展的,则填写自定义服务商标识,如:'myprovider';
*
* 3、自定义服务商,则填写服务商标识类名,如:MyProvider;
*/
provider?: string | ProviderConstructable;
/**
* 应用id,与 app_id 二者必须填写一个
*/
client_id?: string;
/**
* 应用id,与 client_id 二者必须填写一个
*/
app_id?: string;
/**
* 应用密钥,与 app_secret 二者必须填写一个
*/
client_secret: string;
/**
* 应用密钥,与 client_secret 二者必须填写一个
*/
app_secret?: string;
/**
* 应用回调地址,与 redirect 二者必须填写一个
*/
redirect_url?: string;
/**
* 应用回调地址,与 redirect_url 二者必须填写一个
*/
redirect?: string;
[key: string]: any;
}
/**
* 键名为服务商的标识,如果需要管理同一个服务商的不同应用,
* 则键名可以用作别名,但同时配置中的 provider 属性必填
*/
export declare interface SocialiteConfig {
[key: string]: ProviderConfig;
}
/**
* 自定义服务商创建方法映射表,键名为服务商标识,键值为对应的创建方法
*/
export declare interface CustomProviderCreators {
[key: string]: ProviderCreator;
}
/**
* 服务商创建方法
*/
export declare type ProviderCreator = (config: ProviderConfig) => ProviderInterface;
/**
* 微信组件配置
*/
export declare interface WechatComponent {
id: string;
token: string;
}
/**
* 微信组件配置选项
*/
export declare interface WechatComponentConfig {
id?: string;
app_id?: string;
component_app_id?: string;
token?: string;
app_token?: string;
access_token?: string;
component_access_token?: string;
}