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

AuthService

AuthServiceは、ユーザーアカウントのあらゆる側面を管理するための包括的なAPIを提供します。ユーザープロファイル、プライバシーと通知設定、他のユーザーをフォローするなどのソーシャルインタラクション、ログアウトやアカウント削除などの重要な認証アクションを処理します。SDKインスタンスのsdk

AuthServiceは、ユーザーアカウントのあらゆる側面を管理するための包括的なAPIを提供します。ユーザープロファイル、プライバシーと通知設定、他のユーザーをフォローするなどのソーシャルインタラクション、ログアウトやアカウント削除などの重要な認証アクションを処理します。SDKインスタンスのsdk.authを通じてアクセスできます。

このサービスは、TokenServiceと密接に連携して認証状態を管理しますが、ほとんどの操作では低レベルのトークン処理を抽象化します。

ユーザープロファイル管理

これらのメソッドを使用すると、ユーザープロファイルデータを取得、更新、管理できます。

getProfile

現在認証されているユーザーの完全なプロファイルを取得します。

javascript
const profile = await sdk.auth.getProfile();
console.log(profile);

戻り値

  • profile Promise<object> — ユーザーのプロファイルオブジェクトに解決されるPromise。

レスポンス例

json
{
  "did": "z8ia29UsENBg6tLZUKi2HABj38Cw1LmHZocbQ",
  "fullName": "John Doe",
  "email": "john.doe@example.com",
  "avatar": "https://example.com/avatar.png",
  "bio": "Developer and enthusiast.",
  "metadata": {}
}

saveProfile

現在認証されているユーザーのプロファイルを更新します。localemetadataなどのフィールドを更新できます。

パラメータ

  • profileData object (required) — 更新するプロファイルフィールドを含むオブジェクト。
    • locale string — ユーザーの優先言語ロケール(例:「en」)。
    • inviter string — 現在のユーザーを招待したユーザーのDID。
    • metadata any — カスタムユーザーデータを保存するためのオブジェクト。
    • address any — ユーザーの住所情報。
javascript
const updatedProfile = await sdk.auth.saveProfile({
  metadata: { twitter: '@johndoe' },
  locale: 'en-US'
});
console.log('プロファイルが保存されました:', updatedProfile);

戻り値

  • updatedProfile Promise<object> — 更新されたプロファイルオブジェクトに解決されるPromise。

getUserPublicInfo

DIDによって識別される任意のユーザーの公開情報を取得します。

パラメータ

  • options object (required)
    • did string (required) — ユーザーの分散型識別子(DID)。
javascript
const publicInfo = await sdk.auth.getUserPublicInfo({ did: 'z8ia...' });
console.log(publicInfo.fullName);

戻り値

  • UserPublicInfo Promise<object> — UserPublicInfoオブジェクトに解決されるPromise。
    • avatar string — ユーザーのアバターのURL。
    • did string — ユーザーのDID。
    • fullName string — ユーザーのフルネーム。
    • sourceAppPid string | null — ソースアプリケーションのPID。

refreshProfile

ユーザーのプロファイルを元のソースから強制的に同期し、データが最新であることを保証します。

javascript
await sdk.auth.refreshProfile();
console.log('プロファイルの更新が開始されました。');

戻り値

  • void Promise<void> — 更新リクエストが送信されたときに解決されるPromise。

updateDidSpace

ユーザーのDID Space設定を更新します。これにより、データがどこに保存されるかが決まります。

パラメータ

  • options object (required)
    • spaceGateway object (required) — 新しいDID Spaceゲートウェイの詳細を含むオブジェクト。
      • did string (required) — スペースのDID。
      • name string (required) — スペースの名前。
      • url string (required) — スペースのURL。
      • endpoint string (required) — スペースのAPIエンドポイント。
javascript
const spaceGateway = {
  did: 'zNK...',
  name: 'My Personal Space',
  url: 'https://space.example.com',
  endpoint: 'https://space.example.com/api'
};

await sdk.auth.updateDidSpace({ spaceGateway });
console.log('DID Spaceが正常に更新されました。');

戻り値

  • void Promise<void> — 更新が成功したときに解決されるPromise。

getProfileUrl

ユーザーの公開プロファイルページのURLを構築します。

パラメータ

  • options object (required)
    • did string (required) — ユーザーのDID。
    • locale string (required) — プロファイルページに希望するロケール。
javascript
const url = await sdk.auth.getProfileUrl({ did: 'z8ia...', locale: 'en' });
console.log('プロファイルURL:', url);

戻り値

  • url Promise<string> — 完全なプロファイルURL文字列に解決されるPromise。

設定管理

プライバシーと通知に関するユーザー固有の設定を管理します。

getUserPrivacyConfig

指定されたユーザーのプライバシー設定を取得します。

パラメータ

  • options object (required)
    • did string (required) — プライバシー設定が要求されているユーザーのDID。
javascript
const privacyConfig = await sdk.auth.getUserPrivacyConfig({ did: 'z8ia...' });
console.log('メールアドレスは公開されていますか?', privacyConfig.isEmailPublic);

戻り値

  • PrivacyConfig Promise<object> — ユーザーのPrivacyConfigオブジェクトに解決されるPromise。キーは設定名、値はブール値です。

saveUserPrivacyConfig

現在認証されているユーザーのプライバシー設定を保存します。

パラメータ

  • config object (required) — プライバシー設定を表すキーと値のペアを持つオブジェクト。
javascript
const newConfig = { isEmailPublic: false, allowFriendRequests: false };
const savedConfig = await sdk.auth.saveUserPrivacyConfig(newConfig);
console.log('プライバシー設定が保存されました。');

戻り値

  • PrivacyConfig Promise<object> — 保存されたPrivacyConfigオブジェクトに解決されるPromise。

getUserNotificationConfig

Webhookやチャンネル設定を含む、現在のユーザーの通知設定を取得します。

javascript
const notificationConfig = await sdk.auth.getUserNotificationConfig();
console.log('Webhooks:', notificationConfig.webhooks);

戻り値

  • NotificationConfig Promise<object> — NotificationConfigオブジェクトに解決されるPromise。
    • webhooks array
      • webhook object
        • type 'slack' | 'api' (required)
        • url string (required)
    • notifications object
      • email boolean
      • wallet boolean
      • phone boolean

saveUserNotificationConfig

現在のユーザーの新しい通知設定を保存します。

パラメータ

  • config object (required) — 新しい通知設定オブジェクト。
    • webhooks array
      • webhook object
        • type 'slack' | 'api' (required)
        • url string (required)
    • notifications object
      • email boolean
      • wallet boolean
      • phone boolean
javascript
const newConfig = {
  webhooks: [
    { type: 'api', url: 'https://example.com/webhook' }
  ],
  notifications: {
    email: true,
    wallet: false
  }
};
const savedConfig = await sdk.auth.saveUserNotificationConfig(newConfig);
console.log('通知設定が保存されました:', savedConfig);

戻り値

  • NotificationConfig Promise<object> — 保存されたNotificationConfigオブジェクトに解決されるPromise。

testNotificationWebhook

Webhook設定をテストして、テスト通知を受信できることを確認します。

パラメータ

  • webhook object (required) — テストするWebhookオブジェクト。
    • type 'slack' | 'api' (required)
    • url string (required)
javascript
const webhookToTest = {
  type: 'slack',
  url: 'https://hooks.slack.com/services/...'
};
const result = await sdk.auth.testNotificationWebhook(webhookToTest);
console.log('Webhookのテストに成功しました:', result.success);

戻り値

  • result Promise<object> — successプロパティを持つオブジェクトに解決されるPromise。
    • success boolean — テストが成功したかどうかを示します。

ソーシャルインタラクション

ユーザー間のソーシャルなつながりを管理します。

followUser

他のユーザーをフォローします。

パラメータ

  • options object (required)
    • userDid string (required) — フォローするユーザーのDID。
javascript
const userToFollow = 'z8ia...';
await sdk.auth.followUser({ userDid: userToFollow });
console.log(`${userToFollow}を正常にフォローしました。`);

戻り値

  • void Promise<void> — 操作が完了したときに解決されるPromise。

unfollowUser

ユーザーのフォローを解除します。

パラメータ

  • options object (required)
    • userDid string (required) — フォローを解除するユーザーのDID。
javascript
const userToUnfollow = 'z8ia...';
await sdk.auth.unfollowUser({ userDid: userToUnfollow });
console.log(`${userToUnfollow}のフォローを正常に解除しました。`);

戻り値

  • void Promise<void> — 操作が完了したときに解決されるPromise。

isFollowingUser

現在のユーザーが特定のユーザーをフォローしているかどうかを確認します。

パラメータ

  • options object (required)
    • userDid string (required) — 確認するユーザーのDID。
javascript
const userToCheck = 'z8ia...';
const { isFollowing } = await sdk.auth.isFollowingUser({ userDid: userToCheck });
if (isFollowing) {
  console.log(`${userToCheck}をフォローしています。`);
} else {
  console.log(`${userToCheck}をフォローしていません。`);
}

戻り値

  • result Promise<object> — isFollowingプロパティを含むオブジェクトに解決されるPromise。
    • isFollowing boolean — 現在のユーザーが指定されたユーザーをフォローしている場合はtrue。

認証とアカウントアクション

ユーザーのセッションとアカウントのライフサイクルに関連する重要なアクションを実行します。

logout

現在のユーザーをログアウトします。特定のデバイスまたはすべてのセッションからログアウトするように設定できます。

パラメータ

  • options object
    • visitorId string — ログアウトする特定のデバイス/セッションのID。
    • status string — ログアウトするセッションのステータス。
    • includeFederated boolean — trueの場合、フェデレーションログイングループ内のすべてのアプリケーションからもログアウトします。
javascript
// 現在のセッションから単純にログアウト
await sdk.auth.logout({});
console.log('正常にログアウトしました。');

// 特定のデバイスとすべてのフェデレーションアプリからログアウト
await sdk.auth.logout({ visitorId: 'some-visitor-id', includeFederated: true });

戻り値

  • void Promise<void> — ログアウトプロセスが完了したときに解決されるPromise。

destroyMyself

現在認証されているユーザーのアカウントを完全に削除します。この操作は元に戻すことができず、細心の注意を払って使用する必要があります。

javascript
// これは破壊的な操作です。通常、ユーザーに確認を取ります。
try {
  const result = await sdk.auth.destroyMyself();
  console.log(`アカウント${result.did}は完全に削除されました。`);
} catch (error) {
  console.error('アカウントの削除に失敗しました:', error);
}

戻り値

  • result Promise<object> — 削除されたユーザーのDIDを含むオブジェクトに解決されるPromise。
    • did string — 削除されたユーザーのDID。