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

# iOS 快速入门：Didit 身份认证接入

> 在 iOS 中接入 Didit 身份认证：托管登录、回调验证和安全会话，并可链接到身份验证与持续监控。

> [!WARNING]
>
> 认证功能为新功能：**DiditAuth for iOS** 取决于具体版本发布情况。此处未确认分发坐标、版本和可调用签名。请勿安装猜测的软件包，也不要将身份证件验证 SDK 用作认证 SDK。

## 准备应用

1. 确认您的 Didit 应用已启用认证功能，并从控制台复制其登录源（`https://<slug>.auth.didit.me`，沙盒环境为 `<slug>.sandbox.auth.didit.me`）。
2. 注册您的应用和运行时支持的精确回调 URL。验证应用链接的归属；不要假设任意自定义 URL scheme 都会被接受。
3. 将沙盒与生产环境的配置分开管理，包括回调处理和存储的凭据。
4. 在连接身份验证或监控之前，先确定稳定的用户映射方式。

托管登录请使用系统认证会话。请同时规划原生通行密钥处理和依赖方域名。WebView 不能替代系统认证流程。

## 实现托管流程

使用 `{origin}/sign-in` 地址打开系统认证浏览器会话。提供新的随机 `state`、S256 PKCE 挑战码以及已注册的 `redirect_uri`。代码验证器（verifier）仅在本次尝试中保存在应用内。[JavaScript 快速入门](https://docs.didit.me/zh/authentication/quickstarts/javascript.md)展示了底层协议；在原生代码中，请使用平台加密能力和 URL 处理方式，而不是浏览器全局对象。

回调时，先验证 state、事务有效期和回调目标，然后在 `token/` 处兑换一次性使用的代码。使用原始 verifier 和完全一致的 redirect URI。取消或关闭浏览器并不代表登录成功。

刷新令牌必须存储在平台保护的凭据存储中；切勿存入普通偏好设置文件、分析数据或崩溃日志。使用最终用户的 Bearer 令牌调用 `GET session/` 来验证当前会话。刷新操作需串行执行，两个令牌须同时替换，退出登录后清除用户相关状态。请求约定和刷新令牌重用行为，参见[令牌与 JWKS](https://docs.didit.me/zh/authentication/tokens-and-jwks.md)。

## 原生 SDK 发布预览

原生认证模块计划提供登录、当前会话访问、令牌获取、退出登录和提升认证（step-up）功能，并自动采集设备信号。原生通行密钥和受保护的令牌存储也包含在该版本中。封装 API 将遵循其已发布的平台约定；请勿从设计示例中复制猜测的构造函数参数或方法签名。

在该模块发布之前，请保持其适配器处于禁用状态，或对已启用的应用使用经过审核的托管协议实现。请勿仅凭安装软件包就宣传可用的原生认证快速入门。

## 连接身份验证与监控

您的后端根据已认证的用户生成 `vendor_data`。它为该用户创建验证会话，或签发范围受限的监控令牌。仅将会话凭据或范围受限的令牌返回给您的应用；API 密钥始终保留在服务器端。

需要身份证件验证时，请使用 [iOS 身份证件验证 SDK](https://docs.didit.me/zh/integration/native-sdks/ios-sdk.md)。如需在您的平台上支持监控，请按照 [SDK 交易提交](https://docs.didit.me/zh/transaction-monitoring/sdk-transaction-submission.md)操作。登录、验证和交易决策应分别对待。

## 验证集成

测试以下场景：应用冷启动后返回、后台与前台切换、取消浏览器、回调不匹配、代码重放、令牌过期、并发刷新、MFA、退出登录，以及以其他用户身份登录。该版本可用后，请在受支持的设备上测试通行密钥注册和登录。仅在设备上进行的检查，在目标平台上运行之前仍视为未验证。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.