在首次登录应用时获得 DID Space 的 endpoint
JianChao
2024-03-26 09:46
· edited
概览#
当你希望你的应用把每个用户的数据都存储到各自的 DID Space 时,那么你可以通过某些设置,要求用户首次登录的时候必须绑定他的 DID Space,授权你的应用去访问用户自己的 DID Space.
先决条件#
- 你已经有自己的 Space 可供调试,如果还没有可以参考 https://www.arcblock.io/content/docs/did-spaces/zh/buy-a-did-space 获得
- 你的应用配置了
blocklet.yml#capabilities.didSpace
的值为requiredOnConnect
操作流程#
要求用户出示 DID Space NFT#
当用户在首次登录你的应用的时候,必须出示他自己的 DID Space NFT
出示 DID Space 成功之后,用户可以通过点击 Profile,点击右上角的 Settings 图标,切换到 Storage 标签页就可以看到刚才连接的 DID Space 了
应用读取用户的 DID Space endpoint#
此时,应用在运行状态下,可以通过下面的代码获得该用户的 DID Space endpoint 了:
const AuthService = require('@blocklet/sdk/service/auth');
const authService = new AuthService();
const { user } = await authService.getUser(userDid);
console.log(user.didSpace.endpoint);
// 输出形如: https://space.team.arcblock.io/app/api/space/zNKhe8jwgNZX2z7ZUfwNddNECxSe3wyg7VtS/app/zNKfEK9actwBeLhfVvc9U1p1CqVWxtivVxo6/object/
获得 DID Space endpoint 之后,你将可以在 DID Space 上读写数据,可参考: https://www.arcblock.io/docs/did-spaces/zh/24293819-b746-4ae1-89be-07e9477b04f9
Sticker