oak-general-business/lib/types/OpenID.d.ts

84 lines
2.2 KiB
TypeScript

/**
* OpenID Connect UserInfo 响应接口
* 符合 OpenID Connect Core 1.0 规范
*/
interface OpenIDUserInfo {
/** Subject - 用户的唯一标识符 */
sub: string;
/** 全名 */
name?: string;
/** 名 */
given_name?: string;
/** 姓 */
family_name?: string;
/** 中间名 */
middle_name?: string;
/** 昵称 */
nickname?: string;
/** 首选用户名 */
preferred_username?: string;
/** 个人资料页面 URL */
profile?: string;
/** 头像图片 URL */
picture?: string;
/** 个人网站 URL */
website?: string;
/** 性别 */
gender?: string;
/** 出生日期 (YYYY-MM-DD) */
birthdate?: string;
/** 时区信息 (例如: "America/Los_Angeles") */
zoneinfo?: string;
/** 语言区域设置 (例如: "en-US") */
locale?: string;
/** 信息最后更新时间 (Unix 时间戳,秒) */
updated_at?: number;
/** 电子邮件地址 */
email?: string;
/** 电子邮件是否已验证 */
email_verified?: boolean;
/** 电话号码 (E.164 格式) */
phone_number?: string;
/** 电话号码是否已验证 */
phone_number_verified?: boolean;
/** 邮寄地址 */
address?: OpenIDAddress;
[key: string]: any;
}
/**
* OpenID Connect 地址对象
*/
interface OpenIDAddress {
/** 完整格式化的邮寄地址,可能包含换行符 */
formatted?: string;
/** 街道地址,可能包含门牌号和街道名称 */
street_address?: string;
/** 城市或地区 */
locality?: string;
/** 州、省、县或地区 */
region?: string;
/** 邮政编码 */
postal_code?: string;
/** 国家名称 */
country?: string;
}
/**
* UserInfo 端点请求参数
*/
interface UserInfoRequest {
/** Access Token (通常在 Authorization header 中) */
access_token: string;
}
/**
* UserInfo 端点错误响应
*/
interface UserInfoError {
/** 错误代码 */
error: 'invalid_token' | 'insufficient_scope' | 'invalid_request';
/** 错误描述 */
error_description?: string;
/** 错误相关的 URI */
error_uri?: string;
}
export { OpenIDUserInfo, OpenIDAddress, UserInfoRequest, UserInfoError };