浏览全部文档 · 9/37

功能简介

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>"}'

权限模型

注册和登录入口可为 public Scope,但成功后生成的 Session 只代表该用户。账号资料、Session、JWT 和受保护资源继续按当前用户与 Project 边界校验;Users 管理接口属于服务端高权限操作。

常见错误

现象处理建议
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.php
  • backend-candidate:src/Appwrite/Platform/Modules/Account/Services/Http.php
  • backend-candidate:tests/e2e/Services/Account/AccountCustomClientTest.php
  • frontend-candidate:console/src/routes/(console)/project-[region]-[project]/auth/

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/products/auth。上游页面不是 AppBase 实现证据。

继续阅读