品牌化
自定义托管授权(身份)页面和邮件模板的外观和样式。
可自定义内容
- Logo 和邮件 logo:
COMPANY_LOGO_URL、COMPANY_EMAIL_LOGO_URL - 字体:
fontFamily、fontUrl - 颜色:
layoutColor、labelColorprimaryButtonColor、primaryButtonLabelColor、primaryButtonBorderColorsecondaryButtonColor、secondaryButtonLabelColor、secondaryButtonBorderColorcriticalIndicatorColor
- 页脚链接:
termsLink、privacyPolicyLink
这些值会被身份页面布局和组件使用。例如,layoutColor 控制页面背景,labelColor 控制文字颜色,按钮颜色决定了主要/次要操作的样式。
全局默认(所有客户端)
有两个位置可以配置全局品牌化:
- 在代码中编辑默认值
- 文件:
server/src/configs/variable.ts - 更新
DefaultBranding枚举的值,以设置字体和颜色的全局默认。
- 通过环境变量设置 logo 和法律链接
- 文件:
server/wrangler.toml→[vars] - 设置:
COMPANY_LOGO_URLCOMPANY_EMAIL_LOGO_URLTERMS_LINKPRIVACY_POLICY_LINK
更改后,重新部署或重启服务器。
按组织定制品牌化
为特定组织(tenants/clients)覆盖品牌化配置:
- 启用组织功能
- 在
server/wrangler.toml中的[vars]下,将ENABLE_ORG = true。
- 创建组织并设置品牌化
- 打开 Admin Panel。
- 转到
Orgs标签页。 - 创建一个具有唯一 slug 的新组织。
- 配置该组织的品牌化(logo、颜色、字体、链接)。
- 将用户路由到该组织的品牌页面
- 在授权重定向 URL 中将组织 slug 作为查询参数添加:
org=<slug> - 示例:
https://your-auth-server/identity/v1/authorize?client_id=...&redirect_uri=...&response_type=code&org=acme
前端 SDK 示例
如果你使用的是前端 SDK,将 org 参数传递给 loginRedirect(或 loginPopup):
import { useAuth } from '@melody-auth/react'
export default function SignInButton() {
const { isAuthenticated, loginRedirect } = useAuth()
const signInAcme = () => {
loginRedirect({ org: 'acme' })
}
if (isAuthenticated) return null
return <button onClick={signInAcme}>Sign in to Acme</button>
}
如果指定了组织(org)并且允许使用该组织进行公共注册,则你为该组织设置的值会覆盖身份页面和邮件中的全局默认值。