Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

请求多个索赔


在某些情况下,您可能需要在一次 DID Connect 中进行多次签名,以获得更顺畅的体验。请参阅本文,了解如何通过 DID Connect 进行多项声明。

基本流程与“快速入门”章节一致,请按如下方式更改处理程序中的代码:

const { fromBase58, toBase58 } = require('@ocap/util');
const { getHasher, types } = require('@ocap/mcrypto');

const { getRandomMessage } = require('../../libs/utils');
const logger = require('../../libs/logger');

const hasher = getHasher(types.HashType.SHA3);
const data = 'abcdefghijklmnopqrstuvwxyz'.repeat(32);

const action = 'request-multiple-claims';

module.exports = {
  action,
onConnect() {
  return {
    signText: [
      'signature',
      () => {
        return {
          type: 'mime:text/plain',
          data: getRandomMessage(),
          description: 'Please sign the text',
        };
      },
    ],
    signDigest: [
      'signature',
      () => {
        return {
          description: 'Please sign the digest',
          digest: toBase58(hasher(data, 1)),
        };
      },
    ],
  };
},

  onAuth: ({ userDid, userPk, claims, updateSession }) => {
    logger.info(`${action}.onAuth`, { userPk, userDid, claims });
    updateSession({
      result: [
        {
          origin: fromBase58(claims[0].origin).toString(),
          sig: claims[0].sig,
        },
        {
          origin: data,
          digest: claims[1].digest,
          sig: claims[1].sig,
        },
      ],
    });
  },
};


将调用 DID Connect 代码的前端部分更改为如下内容:

connectApi.open({
  locale: 'en',
  action: 'request-multiple-claims',
  onSuccess({ result }) {
    // multi claims data will be in result, result would be an array
  },
  messages: {
title: 'Request Multiple Claims',
    scan: 'In this session, you will do both text signing and summary signing',
},
});
你获得 0 积分