HapiJS を API サーバーとして使用することを検討しています。特定のモデル/リソースに対して、「ユーザー A はフィールド B を編集できます」「ユーザー C はフィールド D を表示できます」など、きめ細かなユーザー権限が必要です。
何かを構築する前に、Hapi と互換性のあるこのようなものが既に作成されているかどうかを確認していました。
HapiJS を API サーバーとして使用することを検討しています。特定のモデル/リソースに対して、「ユーザー A はフィールド B を編集できます」「ユーザー C はフィールド D を表示できます」など、きめ細かなユーザー権限が必要です。
何かを構築する前に、Hapi と互換性のあるこのようなものが既に作成されているかどうかを確認していました。
ビルトイン スコープを使用して ACL 権限を検証するという記事を読みました。
言及された記事へのリンクは次のとおりです。 https://blog.andyet.com/2015/06/16/harnessing-hapi-scopes/
すぐに再開するには (上記のリンクの例を使用)、次のようなユーザー オブジェクトを取得します。
{
"username": "han",
"scope": ["door-trash-compactor"]
}
スコープは、このユーザーの ACL をサポートしているものによって生成できます。この場合、次のように確認できるdoor
idを持つリソースがあります。trash-compactor
server.route({
method: 'GET',
route: '/doors/{door_id}',
config: {
handler: function (request, reply) {
reply(request.params.door_id ' door is closed');
},
auth: {
scope: ['door-{params.door_id}']
}
}
});
スコープdoor-{params.door_id}
は変換されdoor-trash-compactor
、検証されます。ハンのゴミ圧縮機のドアへの要求は有効になり、彼はdoor is closed
メッセージを受け取ります。
ブログ投稿はよく書かれており (この要約よりもはるかに優れています)、これをより詳細に説明しています - 読むことをお勧めします.