UNPKG

node-socialite

Version:

Socialite is an OAuth2 authentication tool for Node.js

184 lines (162 loc) 3.7 kB
/** * 授权后用户信息接口 */ 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; }