> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asktable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 部署认证配置

> 通过静态环境变量配置 Google、GitHub、微信、邮箱登录、SMTP 和 SMS。

Google、GitHub、微信、邮箱登录、SMTP 与 SMS 属于整个 AskTable 实例，只从环境变量读取。修改后需要重启 Web 和 Worker；系统设置中不再提供这些认证配置。

## OAuth 提供商

| 提供商    | 环境变量                                      |
| ------ | ----------------------------------------- |
| Google | `GOOGLE_CLIENT_ID`、`GOOGLE_CLIENT_SECRET` |
| GitHub | `GITHUB_CLIENT_ID`、`GITHUB_CLIENT_SECRET` |
| 微信     | `WECHAT_APP_ID`、`WECHAT_APP_SECRET`       |

每组 ID 和 Secret 必须同时设置。整组留空会禁用该提供商，只填一项会让应用在启动时失败并指出不完整配置。

```yaml docker-compose.yaml theme={null}
services:
  asktable:
    environment:
      GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
      GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
      GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-}
      GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-}
      WECHAT_APP_ID: ${WECHAT_APP_ID:-}
      WECHAT_APP_SECRET: ${WECHAT_APP_SECRET:-}
      SMS_API_URL: ${SMS_API_URL:-}
      SMS_API_KEY: ${SMS_API_KEY:-}
```

`GET /system/info` 只返回启用状态和非敏感 Client ID，不返回 Secret，也不包含任何组织级企业微信/WPS 配置。

## 国内云

Cloud + CN 生产只允许微信登录。微信、企业微信或 WPS 认证成功后先建立正常会话；缺少手机号时，统一 setup 页面会要求完成验证后才能进入产品工作区。启动时必须同时配置 `WECHAT_APP_ID`、`WECHAT_APP_SECRET`、`SMS_API_URL` 和 `SMS_API_KEY`；任一缺失都会让进程明确报错并停止。

`make dev PROFILE=cn` 默认使用 `AT_DEV_MODE=1`，无需连接微信或短信服务。登录页仍使用生产微信扫码布局，只在二维码与协议下方附加“开发者登录”。点击后输入测试用户名：相同用户名复用同一模拟账号，不同用户名创建不同账号。首次登录建立正常会话后进入生产手机号绑定页，随机验证码只写入 server 日志。未配置微信 AppID 时原二维码槽位显示未配置状态；配置后可以同时使用真实二维码。共享开发或预发应设置 `AT_DEV_MODE=0` 并补齐四项生产配置。

## 邮箱登录与 SMTP

```yaml docker-compose.yaml theme={null}
services:
  asktable:
    environment:
      EMAIL_LOGIN_ENABLED: "true"
      EMAIL_SMTP_PROVIDER: aliyun # aliyun | custom
      EMAIL_SMTP_HOST: ""         # custom 时必填
      EMAIL_SMTP_PORT: "465"
      EMAIL_SMTP_USERNAME: ""
      EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD:-}
      EMAIL_SMTP_USE_SSL: "true"
      EMAIL_SENDER_ADDRESS: noreply@example.com
```

`aliyun` 使用固定的阿里云邮件推送主机和 SSL 端口，发件地址同时作为用户名；`custom` 使用给定的 Host、Port 与 SSL 选项，Username 留空时回退到发件地址。SMTP 未完整配置时，依赖邮件发送的任务会跳过邮件投递。

<Note>
  若 Google、GitHub、微信全部未启用，即使 `EMAIL_LOGIN_ENABLED=false`，系统也会保留邮箱登录兜底，避免部署完全没有登录入口。组织级企业微信/WPS 不参与这个判断。
</Note>

企业微信和 WPS 请由组织 Owner/Admin 在企业集成中连接，参见 [企业集成登录](/concepts/organization/enterprise-login)。旧版本升级要求见 [迁移](/deploy/migration)。
