登录体验 API
登录体验接口用于配置登录页面的品牌外观、登录注册策略、密码策略和法律条款等。整个系统只有一份登录体验配置,通过 GET 获取、PATCH 更新。
所有接口均需要管理员令牌认证:
Authorization: Bearer <admin_token>
获取登录体验配置
GET /api/v1/sign-in-experience
获取当前的登录体验配置。
请求示例:
bash
curl -X GET https://your-domain/api/v1/sign-in-experience \
-H "Authorization: Bearer <admin_token>"成功响应:
json
{
"code": 0,
"message": "success",
"result": {
"id": "sie_default",
"branding": {
"logo_url": "https://example.com/logo.png",
"dark_logo_url": "https://example.com/logo-dark.png",
"favicon": "https://example.com/favicon.ico",
"primary_color": "#4F46E5",
"dark_primary_color": "#6366F1"
},
"sign_in": {
"methods": [
{
"identifier": "username",
"password": true,
"verification_code": false
},
{
"identifier": "email",
"password": true,
"verification_code": true
},
{
"identifier": "phone",
"password": false,
"verification_code": true
}
]
},
"sign_up": {
"identifiers": ["username"],
"password": true,
"verify": false
},
"password_policy": {
"min_length": 8,
"require_lowercase": true,
"require_uppercase": false,
"require_numbers": true,
"require_special_chars": false
},
"terms_of_use_url": "https://example.com/terms",
"privacy_policy_url": "https://example.com/privacy",
"updated_at": "2025-06-01T00:00:00Z"
}
}响应字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
branding | object | 品牌外观配置 |
branding.logo_url | string | 浅色模式 Logo URL |
branding.dark_logo_url | string | 深色模式 Logo URL |
branding.favicon | string | 网站图标 URL |
branding.primary_color | string | 浅色模式主色调(十六进制) |
branding.dark_primary_color | string | 深色模式主色调(十六进制) |
sign_in | object | 登录方式配置 |
sign_in.methods | array | 登录方式列表 |
sign_in.methods[].identifier | string | 标识符类型:username、email、phone |
sign_in.methods[].password | boolean | 是否支持密码登录 |
sign_in.methods[].verification_code | boolean | 是否支持验证码登录 |
sign_up | object | 注册配置 |
sign_up.identifiers | string[] | 注册标识符类型:username、email、phone |
sign_up.password | boolean | 注册时是否需要设置密码 |
sign_up.verify | boolean | 注册时是否需要验证(邮箱/手机号) |
password_policy | object | 密码策略 |
password_policy.min_length | integer | 最小密码长度 |
password_policy.require_lowercase | boolean | 是否要求包含小写字母 |
password_policy.require_uppercase | boolean | 是否要求包含大写字母 |
password_policy.require_numbers | boolean | 是否要求包含数字 |
password_policy.require_special_chars | boolean | 是否要求包含特殊字符 |
terms_of_use_url | string | 服务条款链接 |
privacy_policy_url | string | 隐私政策链接 |
更新登录体验配置
PATCH /api/v1/sign-in-experience
更新登录体验配置。仅传入需要修改的字段,未传入的字段保持不变。
请求体:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
branding | object | 否 | 品牌外观配置 |
sign_in | object | 否 | 登录方式配置 |
sign_up | object | 否 | 注册配置 |
password_policy | object | 否 | 密码策略 |
terms_of_use_url | string | 否 | 服务条款链接 |
privacy_policy_url | string | 否 | 隐私政策链接 |
请求示例(更新品牌配置):
bash
curl -X PATCH https://your-domain/api/v1/sign-in-experience \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"branding": {
"logo_url": "https://example.com/new-logo.png",
"primary_color": "#2563EB"
}
}'请求示例(更新登录与注册策略):
bash
curl -X PATCH https://your-domain/api/v1/sign-in-experience \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"sign_in": {
"methods": [
{
"identifier": "email",
"password": true,
"verification_code": true
}
]
},
"sign_up": {
"identifiers": ["email"],
"password": true,
"verify": true
}
}'请求示例(更新密码策略):
bash
curl -X PATCH https://your-domain/api/v1/sign-in-experience \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"password_policy": {
"min_length": 10,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_special_chars": true
}
}'请求示例(更新法律条款):
bash
curl -X PATCH https://your-domain/api/v1/sign-in-experience \
-H "Authorization: Bearer <admin_token>" \
-H "Content-Type: application/json" \
-d '{
"terms_of_use_url": "https://example.com/new-terms",
"privacy_policy_url": "https://example.com/new-privacy"
}'成功响应:
json
{
"code": 0,
"message": "success",
"result": {
"id": "sie_default",
"branding": {
"logo_url": "https://example.com/new-logo.png",
"dark_logo_url": "https://example.com/logo-dark.png",
"favicon": "https://example.com/favicon.ico",
"primary_color": "#2563EB",
"dark_primary_color": "#6366F1"
},
"sign_in": {
"methods": [
{
"identifier": "email",
"password": true,
"verification_code": true
}
]
},
"sign_up": {
"identifiers": ["email"],
"password": true,
"verify": true
},
"password_policy": {
"min_length": 10,
"require_lowercase": true,
"require_uppercase": true,
"require_numbers": true,
"require_special_chars": true
},
"terms_of_use_url": "https://example.com/new-terms",
"privacy_policy_url": "https://example.com/new-privacy",
"updated_at": "2025-06-15T14:00:00Z"
}
}