Web3Auth iOS SDK
Web3Auth集成了无密码认证和不可托管的密钥基础设施,适用于Web3应用程序和钱包。通过聚合OAuth(谷歌、推特、Discord)登录,以及不同钱包和创新的多方计算(MPC)-Web3Auth为您应用程序上的每个用户提供无缝登录体验。
📖 文档
访问官方的Web3Auth文档和SDK参考以开始使用!
💡 功能
- 即插即用,基于OAuth的Web3身份验证服务
- 完全去中心化,不可托管的密钥基础设施
- 端到端可白标解决方案
- 基于阈值密码学的密钥重建
- 多因素认证设置和恢复(包括密码、备份短语、设备因素编辑/删除等)
- 支持WebAuthn和免密码登录
- 支持连接到多个钱包
- DApp活动会话管理
...等等
⏪ 要求
- iOS 13+
- Xcode 11.4+ / 12.x
- Swift 4.x / 5.x
⚡ 安装
如果您正在使用Swift包管理器,请在Xcode中打开以下菜单项
文件 > Swift包 > 添加包依赖...
在“选择包存储库”提示中添加以下URL
https://github.com/web3auth/web3auth-swift-sdk
如果您正在使用cocoapods,请打开.podfile并添加
pod 'Web3Auth', '5.0.0'
入门
使用基于Web的应用内流程进行身份验证(iOS 13+)
- 将Web3Auth导入您的项目。
import Web3Auth
- 显示基于Web的应用内登录对话框。用户应看到一个权限对话框。
Task{
await Web3Auth()
.login(OLInitParams(loginProvider: .GOOGLE)) {
switch $0 {
case .success(let result):
print("""
Signed in successfully!
Private key: \(result.privKey)
User info:
Name: \(result.userInfo.name)
Profile image: \(result.userInfo.profileImage ?? "N/A")
Type of login: \(result.userInfo.typeOfLogin)
""")
case .failure(let error):
print("Error: \(error)")
}
}
}
- 登录用户之前,您可以在状态变量之前进行检查,如果用户有活跃会话,状态变量将已经包含您从登录中获得的所有值,因此用户不需要重新登录
Task{
let web3auth = await Web3Auth()
let state = web3auth.state
}
🌟 配置
为了使用Web3Auth,您需要提供您的Web3Auth ClientId以及要运行它的哪个网络。
-
转到Web3Auth开发者仪表板,创建或打开现有的Web3Auth项目,并复制您的Client ID,即ClientId。
-
在Web3Auth初始化器中设置clientID和网络
Task {
await Web3Auth(W3AInitParams(clientId: "BJYIrHuzluClBK0vvTBUJ7kQylV_Dj3NA-X1q4Qvxs2Ay3DySkacOpoOb83lDTHJRVY83bFlYtt4p8pQR-oCYtw", network: .testnet)
}
请还在开发者仪表板中将\(bundleId)://auth
列入白名单。此步是重定向正常工作的强制性步骤。
🩹 例子
检查我们示例中的您首选区块链和平台的例子
🌐 演示
检查Web3Auth演示,看看如何在一个应用程序中使用Web3Auth。
此外,检查此存储库中的演示文件夹,其中包含一个示例应用程序。