@yeying-community/yeying-client-ts
    Preparing search index...

    Class Authenticate

    用于身份验证的类,负责生成和验证消息头签名

    Index

    Constructors

    • 构造函数

      Parameters

      • blockAddress: BlockAddress

        包含 DID 和私钥的地址信息

      Returns Authenticate

      const blockAddress = { identifier: 'example-did', privateKey: 'example-private-key' };
      const auth = new Authenticate(blockAddress);

    Methods

    • 生成签名的消息头

      Parameters

      • Optionalbody: Uint8Array<ArrayBufferLike>

        可选的附加消息体

      Returns Promise<MessageHeader>

      返回签名后的消息头

      const header = await auth.createHeader();
      
    • 处理响应并验证其签名

      Parameters

      • response: any

        响应对象

      • bodySchema: any

        响应体的 Protobuf 模式

      • isSuccess: Function = isOk

        判断状态是否成功函数

      Returns Promise<void>

      InvalidArgument 如果时间戳过期

      NoPermission 如果签名无效

      const response = { header: { ... }, body: { ... } };
      const bodySchema = MessageHeaderSchema;
      try {
      await auth.doResponse(response, bodySchema);
      console.log('Response is valid');
      } catch (err) {
      console.error(err);
      }
    • 对数据进行签名

      Parameters

      • data: Uint8Array

        需要签名的数据

      Returns Promise<string>

      返回签名后的数据

      const data = new Uint8Array([1, 2, 3]);
      const signature = await auth.sign(data);
    • 验证消息头的签名是否有效

      Parameters

      • header: MessageHeader

        消息头对象

      • body: undefined | Uint8Array<ArrayBufferLike>

        可选的附加消息体

      Returns Promise<void>

      InvalidArgument 如果时间戳过期

      NoPermission 如果签名无效

      const header = await auth.createHeader();
      try {
      await auth.verifyHeader(header, undefined);
      console.log('Header is valid');
      } catch (err) {
      console.error(err);
      }
    • 验证签名是否有效

      Parameters

      • did: string

        DID 字符串

      • data: Uint8Array

        需要验证的数据

      • signature: string

        签名字符串

      Returns Promise<boolean>

      如果签名有效,返回 true;否则返回 false

      const data = new Uint8Array([1, 2, 3]);
      const isValid = await auth.verify('example-did', data, 'example-signature');
      console.log(isValid); // 输出: true 或 false