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

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

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

先决条件

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

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

  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 API\React\ReactAuthSimple
    
  2. 运行以下命令以安装应用依赖项:

    npm install
    

配置示例 React 应用

  1. 在代码编辑器中,打开 src\config.ts 文件。

  2. 找到占位符 Enter_the_Application_Id_Here ,然后将其替换为之前注册的应用的应用程序(客户端)ID。

  3. 保存更改。

配置 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 API\React\ReactAuthSimple
    npm run cors
    
  2. 若要启动 React 应用,请打开另一个终端窗口,然后运行以下命令:

    cd API\React\ReactAuthSimple
    npm start
    
  3. 打开 Web 浏览器并转到 http://localhost:3000/

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

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

使用别名或用户名启用登录

你可以允许使用电子邮件地址和密码登录的用户也使用用户名和密码登录。 用户名也称为备用登录标识符,可以是客户 ID、帐户号或你选择用作用户名的另一个标识符。

可以通过 Microsoft Entra 管理中心手动将用户名分配给用户帐户,或者通过 Microsoft 图形 API 在应用中自动分配用户名。

使用 《使用别名或用户名登录》 文章中的步骤,让用户能够在你的应用程序中使用用户名登录。

  1. 在登录中启用用户名
  2. 在管理中心创建具有用户名的用户,或通过为现有用户添加用户名来更新用户信息。 或者,还可以 使用 Microsoft 图形 API 在应用中自动创建和更新用户