跳到主要内容

DApp与授权接入

安装SDK

通过npm 安装

npm install @yeefox/auth-sdk

引入

打包后的版本在 lib 文件夹

import {YEEFOX_AUTH, YeefoxAuthSdk} from "@yeefox/auth-sdk/lib";

如果您使用打包工具, 也可以用下面这个方式引入:

import {YEEFOX_AUTH, YeefoxAuthSdk} from "@yeefox/auth-sdk";

还可以在浏览器直接引入,引入方式如下:

<script type="text/javascript" src="node_modules/@yeefox/auth-sdk/lib/index.umd.js"></script>
<script type="text/javascript">
const appId="xxx";
const yeefoxAuth = window.YEEFOX.YeefoxAuthSdk.instance(appId);
</script>

使用申请授权接口前, 初始化必须传入 appId, 使用DApp授权接口则不需要。

调用方法

初始化SDK, 使用单例模式, 用instance方法获得实例。

const appId="xxx";
const yeefoxAuth = YeefoxAuthSdk.instance(appId);

申请授权接口 (需要appId)

1.申请授权用户信息接口(grantUserInfo)

fields参数包含

UserInfoField 代码值(字符串)意义
CODEcode用户码
WALLETwallet链地址
PHONEphone手机号
NICK_NAMEnickName昵称

chain 参数为以狐钱包链代码, 在fields中包含wallet时必填

walletType 参数在链为天舟链时可选, 0x是EVM链地址格式, iaa是原生链地址格式

2.申请授权用户资产列表查看接口(grantAssetView)

chains参数为以狐钱包链代码数组, 可选. 当填入时, 用户只能在选择的链中授权链地址

3.申请授权用户资产托管接口(grantAssetHosting)

chain参数为资产的以狐钱包链代码

class_id参数为资产的分类ID

token_id参数为资产的TokenID

type参数为资产类型

值(数字)意义
137Web3域名
721NFT(Non-Fungible Token)
1155MT(Multi-Token)

amount参数为数量, 在137和721时恒定为1, 1155时为需要托管的数量

上面三个接口都会异步返回(Promise)一个授权序列号, 将序列号交于后端以实际执行授权.

try{
const serial = await yeefoxAuth.grantUserInfo({
fields: [YEEFOX_AUTH.UserInfoField.CODE, YEEFOX_AUTH.UserInfoField.WALLET, YEEFOX_AUTH.UserInfoField.PHONE],
chain: "wenchang-tianzhou"
});
console.log("授权成功, 凭证序列号",serial)
}
catch(e){
console.error("授权失败", e);
}

如果授权发生错误(用户拒绝, 参数错误等) 会抛出错误.

DApp授权接口 (不需要appId)

1.DApp授权用户信息

fields参数包含

UserInfoField 代码值(字符串)意义
CODEcode用户码
WALLETwallet链地址

chain 参数为以狐钱包链代码, 在fields中包含wallet时必填

在调用DApp接口前应该先检测DApp环境是否有效

if(yeefoxAuth.dappAvailable()){
...
}
else{
console.error("未检测到DApp环境")
}

调用示例代码

try {
const result = await yeefoxAuth.getUserInfo({
fields: [
YEEFOX_AUTH.UserInfoField.CODE,
YEEFOX_AUTH.UserInfoField.WALLET,
],
chain: 'wenchang-tianzhou',
});

console.log("授权成功, 用户信息",result)
}
catch (e){
console.error("授权失败", e);
}

附录

以狐钱包链代码

链代码链名称
wenchang-tianhe天和链
wenchang-tianzhou天舟链
conflux树图链