You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求无报错的React集成Internet Identity本地实现入门示例

React + Internet Identity 入门示例(无报错版)

先搞定你遇到的webpack: command not found错误

这个问题就是项目依赖没安装完整,按以下步骤修复:

  1. 进入项目的前端文件夹(一般是src/frontend,直接在项目根目录也可以)
  2. 执行npm install(用yarn的话就yarn install),把包括webpack在内的所有依赖装全
  3. 重新运行dfx deploy即可正常执行

推荐无坑的入门方案

方案1:DFX官方React模板(最省心)

官方模板已经把Internet Identity的集成逻辑、依赖配置都做好了,几乎不会出问题:

  • 先确保DFX是最新版本:dfx upgrade
  • 创建项目:
    dfx new --type=react --frontend=react my-ii-login-demo
    cd my-ii-login-demo
    
  • 部署并启动:
    1. 启动本地节点:dfx start --background
    2. 部署Internet Identity容器:dfx deploy internet_identity
    3. 部署你的项目:dfx deploy
    4. 启动前端服务:npm start
  • 打开项目里的src/App.jsx,里面已经有完整的登录/登出逻辑,直接基于这个修改成你的登录表单即可

方案2:手动集成(适合理解核心逻辑)

如果想从零搭建,步骤也很清晰:

  1. 创建React项目:npx create-react-app my-ii-login
  2. 安装IC官方的auth-client包:npm install @dfinity/auth-client @dfinity/agent
  3. 在组件中编写登录逻辑(比如新建src/Login.jsx):
import { AuthClient } from "@dfinity/auth-client";

const LoginButton = () => {
  const handleLogin = async () => {
    const authClient = await AuthClient.create();
    // 本地测试用本地II地址,主网用官方地址
    const identityProvider = process.env.REACT_APP_DFX_NETWORK === 'local' 
      ? 'http://localhost:4943/?canisterId=ryjl3-tyaaa-aaaaa-aaaba-cai' 
      : 'https://identity.ic0.app';

    await authClient.login({
      identityProvider,
      onSuccess: async () => {
        const identity = authClient.getIdentity();
        console.log('登录成功,身份信息:', identity);
        // 这里可以添加登录成功后的逻辑,比如跳转主页、获取用户信息
      },
    });
  };

  return <button onClick={handleLogin}>用Internet Identity登录</button>;
};

export default LoginButton;
  1. 本地测试时,先启动DFX节点并部署II:dfx start --background && dfx deploy internet_identity

内容的提问来源于stack exchange,提问作者3logy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:47:21