AuthServiceは、ユーザーアカウントのあらゆる側面を管理するための包括的なAPIを提供します。ユーザープロファイル、プライバシーと通知設定、他のユーザーをフォローするなどのソーシャルインタラクション、ログアウトやアカウント削除などの重要な認証アクションを処理します。SDKインスタンスのsdk.authを通じてアクセスできます。
このサービスは、TokenServiceと密接に連携して認証状態を管理しますが、ほとんどの操作では低レベルのトークン処理を抽象化します。
ユーザープロファイル管理
これらのメソッドを使用すると、ユーザープロファイルデータを取得、更新、管理できます。
getProfile
現在認証されているユーザーの完全なプロファイルを取得します。
const profile = await sdk.auth.getProfile();
console.log(profile);戻り値
- profile
Promise<object>— ユーザーのプロファイルオブジェクトに解決されるPromise。
レスポンス例
{
"did": "z8ia29UsENBg6tLZUKi2HABj38Cw1LmHZocbQ",
"fullName": "John Doe",
"email": "john.doe@example.com",
"avatar": "https://example.com/avatar.png",
"bio": "Developer and enthusiast.",
"metadata": {}
}saveProfile
現在認証されているユーザーのプロファイルを更新します。locale、metadataなどのフィールドを更新できます。
パラメータ
- profileData
object(required) — 更新するプロファイルフィールドを含むオブジェクト。- locale
string— ユーザーの優先言語ロケール(例:「en」)。 - inviter
string— 現在のユーザーを招待したユーザーのDID。 - metadata
any— カスタムユーザーデータを保存するためのオブジェクト。 - address
any— ユーザーの住所情報。
- locale
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)。
- did
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。
- avatar
refreshProfile
ユーザーのプロファイルを元のソースから強制的に同期し、データが最新であることを保証します。
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エンドポイント。
- did
- spaceGateway
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) — プロファイルページに希望するロケール。
- did
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。
- did
const privacyConfig = await sdk.auth.getUserPrivacyConfig({ did: 'z8ia...' });
console.log('メールアドレスは公開されていますか?', privacyConfig.isEmailPublic);戻り値
- PrivacyConfig
Promise<object>— ユーザーのPrivacyConfigオブジェクトに解決されるPromise。キーは設定名、値はブール値です。
saveUserPrivacyConfig
現在認証されているユーザーのプライバシー設定を保存します。
パラメータ
- config
object(required) — プライバシー設定を表すキーと値のペアを持つオブジェクト。
const newConfig = { isEmailPublic: false, allowFriendRequests: false };
const savedConfig = await sdk.auth.saveUserPrivacyConfig(newConfig);
console.log('プライバシー設定が保存されました。');戻り値
- PrivacyConfig
Promise<object>— 保存されたPrivacyConfigオブジェクトに解決されるPromise。
getUserNotificationConfig
Webhookやチャンネル設定を含む、現在のユーザーの通知設定を取得します。
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)
- type
- webhook
- notifications
object- email
boolean - wallet
boolean - phone
boolean
- email
- webhooks
saveUserNotificationConfig
現在のユーザーの新しい通知設定を保存します。
パラメータ
- config
object(required) — 新しい通知設定オブジェクト。- webhooks
array- webhook
object- type
'slack' | 'api'(required) - url
string(required)
- type
- webhook
- notifications
object- email
boolean - wallet
boolean - phone
boolean
- email
- webhooks
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)
- type
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— テストが成功したかどうかを示します。
- success
ソーシャルインタラクション
ユーザー間のソーシャルなつながりを管理します。
followUser
他のユーザーをフォローします。
パラメータ
- options
object(required)- userDid
string(required) — フォローするユーザーのDID。
- userDid
const userToFollow = 'z8ia...';
await sdk.auth.followUser({ userDid: userToFollow });
console.log(`${userToFollow}を正常にフォローしました。`);戻り値
- void
Promise<void>— 操作が完了したときに解決されるPromise。
unfollowUser
ユーザーのフォローを解除します。
パラメータ
- options
object(required)- userDid
string(required) — フォローを解除するユーザーのDID。
- userDid
const userToUnfollow = 'z8ia...';
await sdk.auth.unfollowUser({ userDid: userToUnfollow });
console.log(`${userToUnfollow}のフォローを正常に解除しました。`);戻り値
- void
Promise<void>— 操作が完了したときに解決されるPromise。
isFollowingUser
現在のユーザーが特定のユーザーをフォローしているかどうかを確認します。
パラメータ
- options
object(required)- userDid
string(required) — 確認するユーザーのDID。
- userDid
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。
- isFollowing
認証とアカウントアクション
ユーザーのセッションとアカウントのライフサイクルに関連する重要なアクションを実行します。
logout
現在のユーザーをログアウトします。特定のデバイスまたはすべてのセッションからログアウトするように設定できます。
パラメータ
- options
object- visitorId
string— ログアウトする特定のデバイス/セッションのID。 - status
string— ログアウトするセッションのステータス。 - includeFederated
boolean— trueの場合、フェデレーションログイングループ内のすべてのアプリケーションからもログアウトします。
- visitorId
// 現在のセッションから単純にログアウト
await sdk.auth.logout({});
console.log('正常にログアウトしました。');
// 特定のデバイスとすべてのフェデレーションアプリからログアウト
await sdk.auth.logout({ visitorId: 'some-visitor-id', includeFederated: true });戻り値
- void
Promise<void>— ログアウトプロセスが完了したときに解決されるPromise。
destroyMyself
現在認証されているユーザーのアカウントを完全に削除します。この操作は元に戻すことができず、細心の注意を払って使用する必要があります。
// これは破壊的な操作です。通常、ユーザーに確認を取ります。
try {
const result = await sdk.auth.destroyMyself();
console.log(`アカウント${result.did}は完全に削除されました。`);
} catch (error) {
console.error('アカウントの削除に失敗しました:', error);
}戻り値
- result
Promise<object>— 削除されたユーザーのDIDを含むオブジェクトに解決されるPromise。- did
string— 削除されたユーザーのDID。
- did