メインコンテンツへスキップ

クライアントの初期化と認証

SpaceClient は、DID Space ネットワークとやり取りするための主要なインターフェースです。ファイルをアップロードしたり、データを管理したりする前に、まず正しい設定と認証情報でクライアントのインスタンスを作成する必要があります。このガイドでは、SpaceClient を初期化し、認証

SpaceClient は、DID Space ネットワークとやり取りするための主要なインターフェースです。ファイルをアップロードしたり、データを管理したりする前に、まず正しい設定と認証情報でクライアントのインスタンスを作成する必要があります。このガイドでは、SpaceClient を初期化し、認証するための様々な戦略について説明します。

すべての設定は、コンストラクタ内の単一の SpaceClientOptions オブジェクトを介してクライアントに渡されます。

クライアントの初期化

typescript
import { SpaceClient } from '@blocklet/did-space-js';

const spaceClient = new SpaceClient({
  // ... ここにオプションを記述します
});

この設定で最も重要な部分は auth オブジェクトで、リクエストがどのように認証されるかを決定します。

認証戦略

SDKは、様々なユースケースに合わせて設計された3つの主要な認証方法を提供します。アプリケーションの環境とセキュリティ要件に最も適したものを選択してください。

1. エンドポイントとウォレットの使用(推奨)

これは最も一般的で安全な方法であり、特にユーザーのウォレットがすぐに利用できる Blocklet 環境内で開発する場合に適しています。ユーザーのウォレットを使用してリクエストに署名し、堅牢で分散化された認証メカニズムを提供します。

この方法は SpaceClientOptionsEndpointAuth インターフェースに対応します。

設定

  • auth object (required) — ウォレットとエンドポイントを使用した認証詳細。
    • wallet WalletObject (required) — リクエストの署名に使用されるウォレットオブジェクト。通常、Blocklet SDKから取得します。
    • endpoint string (required) — ユーザーのDID Spaceとアプリケーションに固有のAPIエンドポイント。

ウォレットとエンドポイントによる初期化

typescript
import { SpaceClient } from '@blocklet/did-space-js';
import getWallet from '@blocklet/sdk/lib/wallet';

// Blocklet環境では、ウォレットに簡単にアクセスできます。
const wallet = getWallet();

// エンドポイントはユーザーのスペースとアプリのDIDに固有です。
const endpoint =
  'https://cedcaa27-znkomkclejcfbjaxw9knzzebmzmqrxjnn9bb.did.abtnet.io/api/space/z3T6EHN7sLhH5cty1PshDeSipeG7JNxEVaRFS/app/zNKabhhwdvVmXjtRTtSHk2YQz4pdDPStV289/';

const spaceClient = new SpaceClient({
  auth: {
    wallet: wallet,
    endpoint: endpoint,
  },
});

// これでクライアントは署名付きリクエストを送信する準備ができました。

2. 認証トークンの使用

この方法は、有効期間の短いベアラートークンを使用するシナリオに適しています。これは、従来のWebアプリケーションや、ウォレットが存在しない可能性のあるサーバー間通信で一般的です。

この方法は SpaceClientOptionsAuthorizationAuth インターフェースに対応します。

設定

  • auth object (required) — 認証トークンを使用した認証詳細。
    • authorization string (required) — リクエストと一緒に送信される認証トークン(例:JWT)。

認証トークンによる初期化

typescript
import { SpaceClient } from '@blocklet/did-space-js';

const authToken = 'your-secure-authorization-token';

const spaceClient = new SpaceClient({
  url: 'https://www.didspaces.com/app',
  auth: {
    authorization: authToken,
  },
});

// これでクライアントは認証にトークンを使用します。

3. アクセスキーの使用

この方法は、DID Space への長期アクセスが必要なバックエンドサービスや自動化スクリプト向けに設計されています。多くのクラウドサービスがAPIアクセスを許可する方法と同様に、認証に秘密鍵を使用します。

この方法は SpaceClientOptionsAccessKeyAuth インターフェースに対応します。

設定

  • auth object (required) — 秘密アクセスキーを使用した認証詳細。
    • secretKey string (required) — リクエストを認証するための秘密鍵。

秘密鍵による初期化

typescript
import { SpaceClient } from '@blocklet/did-space-js';

const secretKey = 'your-long-term-secret-key';

const spaceClient = new SpaceClient({
  url: 'https://www.didspaces.com/app',
  auth: {
    secretKey: secretKey,
  },
});

// クライアントはサーバーサイドまたは自動アクセス用に設定されています。

その他の重要なオプション

認証の他に、SpaceClientOptions オブジェクトはいくつかの便利なパラメータを受け入れます。

  • url string (default: https://www.didspaces.com) — DID SpacesサービスのベースURL。SDKは正しいアプリケーションのマウントポイントを自動的に解決します。通常、これを変更する必要はありません。
  • delegation string — リクエスターが別のDIDに代わってスペースにアクセスする権限があることを証明するJWTトークン。
  • abortController AbortController — リクエストのキャンセルを可能にするためのAbortControllerインスタンス。

これで SpaceClient を初期化し認証する方法を理解できたので、次の論理的なステップは、SDKが内部でリクエストをどのように保護するかを学ぶことです。セキュリティモデルについてさらに詳しく知るには、リクエスト署名のドキュメントに進んでください。