本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)
将 Privy 整合到 dApp 中

导言
Privy是一个简单的钱包工具包,用于在 web3 中进行渐进式身份验证。 有了 Privy,开发人员可以使用传统和 web3 身份验证方法登录用户,实现渐进式登录,提高用户转化率。
在本指南中,您将使用 Privy 钱包工具包将 Metamask、Coinbase Wallet 等外部钱包以及 Google、Twitter、Email 等社交登录信息整合到您在 Kaia 网络上构建的 dApp 中。
先决条件
- 一个正在运行的 Next.js 项目。 您可以克隆 Privy 提供的 create-next-app 模板来学习本教程。
- 来自Privy 开发者控制台的应用程序ID
开始
克隆模板是一个简单的 Next.js Privy Auth 入门模板,包含三个主要核心文件:
- index.tsx:该文件处理用户的登录验证。
- app.tsx:该文件处理 Privy SDK 的初始化,并用 PrivyProvider 封装我们的组件。
- dashboard.tsx:这是用户登录后重定向到的页面。 它可以测试每种登录方法(谷歌、Twitter、电子邮件、钱包)。 对于本指南来说,更重要的是,我们将在使用 MetaMask 等外部钱包连接时执行某些功能。 这些功能包括:获取用户余额、向另一个账户发送 KAIA、部署合约、与智能合约交互。
安装
要在 dApp 中使用 Privy,必须先安装所需的库和 SDK。 因此,您需要设置 ethers.js,以及 Privy React Auth SDK。 您可以将 Privy 与 etherthers.js、web3.js、viem 库一起使用,与 Kaia 区块链进行通信。 在本指南中,我们将使用 ethers.js 库。
打开项目文件夹,运行下面的命令安装所需的库和 SDK:
npm install —save @privy-io/react-authnpm install --save ethers
初始化特权和特权提供程序
成功安装所需的库后,接下来就是用PrivyProvider来封装组件。
PrivyProvider 应封装任何将使用 Privy SDK 的组件。 为此,请打开 _app.tsx 文件并粘贴下面的代码:
import '../styles/globals.css';import type {AppProps} from 'next/app';import Head from 'next/head';import {PrivyProvider} from '@privy-io/react-auth';import {useRouter} from 'next/router';function MyApp({Component, pageProps}: AppProps) { const router = useRouter(); return ( <> <Head> <title>Privy Auth Starter</title> <meta name="description" content="Privy Auth Starter" /> </Head> <PrivyProvider appId={process.env.NEXT_PUBLIC_PRIVY_APP_ID || ''} onSuccess={() => router.push('/dashboard')} > <Component {...pageProps} /> </PrivyProvider> </> );}export default MyApp;
值得注意的是,特权提供者具有以下属性:
- 您的
appID需要在 .env 文件中更新。 您可以使用 Privy 为测试目的提供的以下 "测试应用程序 ID:clpispdty00ycl80fpueukbhl "开始使用。 - 一个可选的
onSuccess回调,用户成功登录后执行该回调。 - 一个可选的 "createPrivyWalletOnLogin "布尔值,用于配置是否希望用户在登录时创建嵌入式钱包。
- 可选配置属性,用于自定义上机体验。