プロファイルクレームは、ユーザーのDIDウォレットから個人情報を要求するために使用されます。これは多くのアプリケーションにとって基本的なステップであり、ユーザーの明確な同意を得てユーザーデータを安全に取得することにより、ユーザー登録、パーソナライズされた体験、コミュニケーションなどの機能を可能にします。
構造
profile クレームオブジェクトは、以下のパラメータで構成されます。
| パラメータ | タイプ | 説明 |
|---|---|---|
description | string | 必須。ユーザーのウォレットに表示されるメッセージで、プロファイル情報が要求される理由を説明します。例:「アカウントを作成するためにプロファイルを提供してください。」 |
items | string[] | 要求するプロファイルフィールドを指定する配列。デフォルトは ['fullName'] です。すべてのオプションについては、以下の「利用可能なプロファイルフィールド」テーブルを参照してください。キー fields は items のエイリアスとしても使用できます。 |
meta | any | 任意。クレームに関連付けたいカスタムメタデータ。これはウォレットには送信されませんが、アプリケーションのロジックで使用できます。 |
利用可能なプロファイルフィールド
items 配列で、以下のフィールドの任意の組み合わせを要求できます。
| フィールド | 説明 |
|---|---|
did | ユーザーの分散型識別子。 |
fullName | ユーザーのフルネーム。 |
email | ユーザーのメールアドレス。 |
phone | ユーザーの電話番号。 |
signature | DIDの所有権を証明する署名。 |
avatar | ユーザーのアバター画像へのURL。 |
birthday | ユーザーの生年月日。 |
url | ユーザーの個人ウェブサイトまたはプロファイルへのURL。 |
例:ユーザー名とメールアドレスの要求
ユーザーのフルネームとメールアドレスを要求するようにDID Connectハンドラを構成する方法は次のとおりです。これは、単純なログインまたは登録フローの一般的なパターンです。
DID Connect Handler
const { WalletHandlers } = require('@arcblock/did-connect');
const handlers = new WalletHandlers({
authenticator,
// ... その他の設定
});
app.get('/api/auth/login', handlers.createAuthUrl({
claims: {
profile: {
description: 'サインアップするには、名前とメールアドレスを提供してください。',
items: ['fullName', 'email'],
}
},
onAuth: async ({ userDid, userPk, claims }) => {
// 'claims' 配列にはユーザーのプロファイルデータが含まれます
const profileData = claims.find(c => c.type === 'profile');
console.log('User DID:', userDid);
console.log('Profile Data:', profileData);
// TODO: 提供された情報を使用して、データベースでユーザーを検索または作成します
}
}));この例では:
claimsオブジェクト内にprofileクレームを定義します。descriptionは、ウォレット内のユーザーにコンテキストを提供します。items配列は、fullNameとemailが必要であることを指定します。onAuthコールバックは、要求されたプロファイル情報を含むclaims配列を含むウォレットの応答を受け取ります。
ウォレットの応答
ユーザーがDIDウォレットで要求を承認すると、onAuth コールバックは要求されたデータを含むペイロードを受け取ります。claims 配列には、ユーザー情報を含む profile タイプのオブジェクトが保持されます。
Wallet Response Example
{
"userDid": "z8ia29UsENBg6tLZUKi2HABj38Cw1LmHZocbQ",
"userPk": "...",
"claims": [
{
"type": "profile",
"fullName": "Alice",
"email": "alice@example.com",
"meta": {}
}
],
"challenge": "...",
"status": "ok"
}アプリケーションは、このデータを使用してアカウントをプロビジョニングしたり、ユーザーエクスペリエンスをパーソナライズしたり、必要に応じて他のアクションを実行したりできます。
次のステップ
プロファイルクレームでユーザーを識別した後、セキュリティに敏感な操作のためにDIDの制御を確認する必要がある場合があります。署名クレームは、この目的に最適なツールです。