84 lines
2.2 KiB
TypeScript
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 };
|