> ## 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.

# Flutter 快速入门：Didit 身份认证集成

> 在 Flutter 中使用 Didit 身份认证：配置托管登录、校验回调、管理安全会话，并链接到身份验证与持续监控。

> [!WARNING]
>
> 身份认证为新功能，**didit\_auth** 取决于发布版本。本文未确认分发坐标、版本和可调用签名。请勿安装未经确认的包，也不要把身份验证 SDK 当作身份认证 SDK 使用。

## 准备应用

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

请分别在 iOS 和 Android 上配置并测试回调链接。身份认证封装层与负责验证的 didit\_sdk 相互独立。

## 实现托管流程

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

回调时，在使用一次性授权码在 `token/` endpoint 兑换令牌之前，先验证 state 参数、交易有效期和回调目标地址。使用原始验证器和精确的重定向 URI。取消或关闭浏览器不代表登录成功。

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

## 原生 SDK 发布预览

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

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

## 连接验证与监控

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

需要身份验证时，请使用 [Flutter 验证 SDK](https://docs.didit.me/zh/integration/native-sdks/flutter-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.