2017-02-09 5 views
0

ロールの詳細を持つユーザーを格納するためにauth0を使用しています。ロールに単一のユーザーを追加する方法

auth0でユーザーの役割をAPI呼び出しによってプログラムで更新したいと考えています。私たちは、私たちは「私たちはドン

PATCH/API /ユーザー/ b78a4564-ad7f-4af2-b7b2-79bbe1f703ef /役割、URLの下に使用したい、記事の下に

User Profile Update

以下の通りですこのURLにどのような詳細を渡す必要があるかを理解してください。 これについて何かルールを書く必要がありますか? 利用可能なコードスニペットがあれば役立ちます。

答えて

0

ユーザープロファイルのルールを更新するには、通常、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ルックアップ/ホワイトリストを行うことができます。柔軟性は非常に高いです。

関連する問題