快速入门:使用本机身份验证 JavaScript SDK 在单页应用中登录用户

适用于绿色圆圈,带有白色复选标记符号,指示以下内容适用于外部租户。 外部租户(了解详细信息

在本快速入门中,你将使用单页应用程序(SPA)演示如何使用本机身份验证 SDK 对用户进行身份验证。 示例应用演示了用户使用密码和电子邮件一次性密码身份验证流注册、登录和注销。

先决条件

启用公共客户端和原生身份验证流

若要指定此应用是公共客户端,并且可以使用本机身份验证,请启用公共客户端和本机身份验证流:

  1. 在“应用注册”页中,选择要为其启用公共客户端和本机身份验证流程的应用注册。
  2. 在“管理”下,选择“身份验证”。
  3. “高级设置”下,允许公共客户端流:
    1. 对于“启用以下移动和桌面流程”,请选择“是”。
    2. 对于“启用本机身份验证”,请选择“是”。
  4. 选择“保存”按钮。

克隆或下载示例 SPA

若要获取示例应用程序,可以从 GitHub 克隆它,也可以将其下载为 .zip 文件。

  • 若要克隆示例,请打开命令提示符并导航到要创建项目的位置,然后输入以下命令:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-javascript-samples.git
    
  • 下载示例。 将其解压缩到名称长度少于 260 个字符的文件路径。

安装项目依赖项

  1. 打开终端窗口并导航到包含 React 示例应用的目录:

        cd typescript/native-auth/react-nextjs-sample
    
  2. 运行以下命令以安装应用依赖项:

    npm install
    

配置示例 React 应用

  1. 打开 src/config/auth-config.ts ,并将以下占位符替换为从 Microsoft Entra 管理中心获取的值:

    • 找到占位符 Enter_the_Application_Id_Here ,然后将其替换为之前注册的应用的应用程序(客户端)ID。
    • 找到占位符 Enter_the_Tenant_Subdomain_Here ,然后将其替换为Microsoft Entra 管理中心中的租户子域。 例如,如果租户主域名是 contoso.onmicrosoft.com,请使用 contoso。 如果没有租户名称,请了解如何 阅读租户详细信息
  2. 保存更改。

配置 CORS 代理服务器

本机身份验证 API 不支持 跨域资源共享(CORS), 因此必须在 SPA 应用和 API 之间设置代理服务器。

此代码示例包含 CORS 代理服务器,用于将请求转发到本机身份验证 API URL 终结点。 CORS 代理服务器是一种侦听端口 3001 的 Node.js 服务器。

若要配置代理服务器,请打开 proxy.config.js 文件,然后找到占位符:

  • tenantSubdomain 并将其替换为 Directory (tenant) 子域。 例如,如果租户主域名是 contoso.onmicrosoft.com,请使用 contoso。 如果没有租户子域,请了解如何 阅读租户详细信息
  • tenantId 并将其替换为目录(租户)ID。 如果没有租户 ID,请了解如何读取租户详细信息

运行并测试应用

现已配置示例应用,并已准备好运行。

  1. 在终端窗口中运行以下命令以启动 CORS 代理服务器:

    cd typescript/native-auth/react-nextjs-sample/
    npm run cors
    
  2. 若要启动 React 应用,请打开另一个终端窗口,然后运行以下命令:

    cd typescript/native-auth/react-nextjs-sample/
    npm run dev
    
  3. 打开 Web 浏览器并转到 http://localhost:3000/

  4. 若要注册帐户,请选择 注册,然后按照提示做。

  5. 注册后,通过选择“登录”和“重置密码”来测试登录和密码重置。