docs/self-hosting/auth/providers/apple.zh-CN.mdx
<Callout type={'warning'}> Apple 登录需要付费的 Apple Developer 账户($99 / 年),且不支持 localhost。开发和生产环境都必须使用 HTTPS 域名。 </Callout>
<Steps> ### 创建 App IDLobeHubcom.yourcompany.lobechatLobeHub Webcom.yourcompany.lobechat.web(这是你的 Client ID)your-domain.comhttps://your-domain.com/api/auth/callback/apple<Callout type={'info'}> 回调 URL 格式:
- 生产环境: `https://your-domain.com/api/auth/callback/apple`
- Apple **不支持** localhost 或 HTTP URL
.p8)- 只能下载一次Apple 要求使用 JWT 作为 client secret。使用 .p8 密钥文件生成:
// Node.js 示例
const jwt = require('jsonwebtoken');
const fs = require('fs');
const privateKey = fs.readFileSync('AuthKey_XXXXX.p8');
const token = jwt.sign({}, privateKey, {
algorithm: 'ES256',
expiresIn: '180d', // 最长 6 个月
issuer: 'YOUR_TEAM_ID',
audience: 'https://appleid.apple.com',
subject: 'YOUR_SERVICES_ID', // Client ID
keyid: 'YOUR_KEY_ID',
});
<Callout type={'warning'}> JWT 最长有效期为 180 天。需要在过期前重新生成并更新。 </Callout>
| 环境变量 | 类型 | 描述 |
|---|---|---|
AUTH_SECRET | 必选 | 会话加密密钥,使用 openssl rand -base64 32 生成 |
AUTH_SSO_PROVIDERS | 必选 | 填写 apple |
AUTH_APPLE_CLIENT_ID | 必选 | 你的 Services ID |
AUTH_APPLE_CLIENT_SECRET | 必选 | 生成的 JWT |
AUTH_APPLE_APP_BUNDLE_IDENTIFIER | 可选 | App Bundle ID(用于原生应用集成) |
<Callout type={'tip'}> 前往 📘 环境变量 可查阅相关变量详情。 </Callout> </Steps>
<Callout type={'info'}> 部署成功后,用户将可以通过 Apple 身份认证并使用 LobeHub。 </Callout>
Apple 登录不支持 localhost 或非 HTTPS URL。本地开发请使用 ngrok 等隧道服务或部署到带有 HTTPS 的测试环境。
JWT client secret 最长有效期为 180 天。请设置提醒在过期前重新生成。