ユーザープロファイルのルールを更新するには、通常、app_metadataを更新することを意味します。そのためには、update user APIv2エンドポイントを使用します。
{
"email": "[email protected]",
"email_verified": true,
"user_id": "auth0|58585012121212b3ac511f8",
"app_metadata": {
"roles": [
"ROLE_ADMIN",
"ROLE_USER"
]
},
}
そして、あなたは、あなたはそのためのAPIエンドポイントを使用することができ、ロールの情報を更新する:
たとえば、次のユーザープロファイル(スペースを節約するために、いくつかの属性を省略)を持っていると仮定します。
今、ルールについて言及しています。はい、認証後にトリガーするルールにロール情報を割り当てることもできます。これは非常に簡単な例です。
function (user, context, callback) {
user.app_metadata = user.app_metadata || {};
user.user_metadata = user.user_metadata || {};
var addRolesToUser = function(user, cb) {
cb(null, ['ROLE_ADMIN', 'ROLE_USER']);
};
addRolesToUser(user, function(err, roles) {
if (err) {
callback(err);
} else {
user.app_metadata.roles = roles;
auth0.users.updateAppMetadata(user.user_id, user.app_metadata)
.then(function(){
callback(null, user, context);
})
.catch(function(err){
callback(err);
});
}
});
}
上記の説明では、すべての認証済みユーザーに同じロールを割り当てています。しかし、特定のクライアント(context.clientIDを使用して)のみのAPIルックアップ/ホワイトリストを行うことができます。柔軟性は非常に高いです。