0

admin、superadminなどのユーザーロールを使用してREST APIを作成しようとしています feathers-permissionsモジュールを使用してこれを達成しようとしましたが、実際の例とインターネットはありません。あなたはそのような仕事をしたことがありますか? 私が今行っていることは、 feathers generate app、次にfeathers generate authenticationです。私は次に何をすべきですか?feathers.js APIのユーザーのアクセス許可

答えて

1

Feathersでアクセス許可と役割を実装する秘訣は、実際にはHooksが必要とするすべての柔軟性を提供することです。別のモジュールを探してAPIを学ぶために時間を費やす必要はありません。

アクセス権(通常は文字列)をユーザーのアレイ(またはユーザーIDに基づいて別のpermissionsサービス)に格納してから、beforeフックチェックでユーザーがフック操作を実行できるかどうかを確認します(ここでは許可がmessages::createと呼ばれている)として登録され、そうでない場合は、Feathers errorがスローされます。

const { Forbidden } = require('feathers-errors'); 

app.service('messages').hooks({ 
    before: { 
    create: [ context => { 
     // `params.provider` is set for any external access 
     // usually we don't need to check permissions for internal calls 
     const isExternal = !!context.params.provider; 

     if(isExternal && !context.params.user.permissions.includes('messages::create')) { 
     throw new Forbidden('You are not allowed to access this'); 
     } 
    }] 
    } 
}); 

このパターンはまた、ノードの既存の権限モジュールで実現することができます。詳細については、Access Control Strategies in FeathersJSEasy API Authorization with CASL and Feathersについてのブログ記事を参照してください。

関連する問題