功能简介
Auth 提供账号注册、登录、Session、身份关联、验证、找回和用户管理。具体可用的邮箱密码、Magic URL、OAuth、Phone 等渠道由 Project 配置和外部 Provider 决定,文档不能把所有渠道视为默认开启。
当前支持范围
- 身份认证与账号(SUPPORTED):为应用提供注册、登录、会话、JWT、多因素认证、账号验证与用户管理;具体登录渠道由项目配置决定。
适用场景
- 为 Web 或移动应用建立用户登录态。
- 在服务端代表当前用户签发短期 JWT。
- 管理验证、找回、账号偏好与身份关联。
前置条件
- Project 已启用 Auth。
- Web 应用已登记 Platform/Origin。
- 所选登录渠道的 SMTP、SMS 或 OAuth Provider 已正确配置。
Console 操作路径
Console → Project → Auth 查看 Users、Teams、Security、Providers、Templates 与 Settings。终端用户的登录通常由应用自己的页面调用 Web/Mobile SDK。
SDK 示例
SDK · TypeScript
import { Client } from 'appbase-web-sdk';
const client = new Client()
.setEndpoint('https://<APPBASE_HOST>/v1')
.setProject('<PROJECT_ID>');
import { Account, ID } from 'appbase-web-sdk';
const account = new Account(client);
await account.create({
userId: ID.unique(),
email: '<USER_EMAIL>',
password: '<USER_PASSWORD>',
name: 'Example user'
});
await account.createEmailPasswordSession({
email: '<USER_EMAIL>',
password: '<USER_PASSWORD>'
});REST 示例
REST · Bash
curl 'https://<APPBASE_HOST>/v1/account/sessions/email' \
-X POST \
-H 'X-Appwrite-Project: <PROJECT_ID>' \
-H 'Content-Type: application/json' \
--data '{"email":"<USER_EMAIL>","password":"<USER_PASSWORD>"}'常见错误
| 现象 | 处理建议 |
|---|---|
401 user_invalid_credentials | 不要区分邮箱是否存在;统一提示凭据无效并遵循项目限流。 |
409 user_already_exists | 改走登录或找回流程,不要重复创建。 |
| OAuth/SMS/邮件发送失败 | 检查 Project Provider 配置和外部服务状态。 |
429 | 等待限流窗口,不要循环尝试密码。 |
当前限制
- 登录渠道受 Project 开关与外部 Provider 可用性约束。
- 服务端 Users API 与终端 Account API 权限不同。
- 不得在日志、URL 或示例中保存密码、Token、Cookie 或 Session Secret。
Appwrite 兼容说明
账号、Session、JWT、MFA 与多种登录渠道沿用熟悉的 Auth 概念;示例与错误以 AppBase 实现为准。
AppBase 增强说明
Auth 可与 Organization、Project、Schema、Moderation 和 Agent 数据权限组合,但不会自动授予资源访问权。
发布状态和验证 Commit
origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353。
权威来源文件列表
backend-candidate:app/controllers/api/account.phpbackend-candidate:src/Appwrite/Platform/Modules/Account/Services/Http.phpbackend-candidate:tests/e2e/Services/Account/AccountCustomClientTest.phpfrontend-candidate:console/src/routes/(console)/project-[region]-[project]/auth/
Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/products/auth。上游页面不是 AppBase 实现证据。