0

カスタム Jwt 検証を行い、ポリシーの req に「user」オブジェクトを設定する基本的なプラグインを作成しました。

あまり関係ありませんが、ミドルウェアのポリシーは次のようになります。

const { getJwtFromCookies, getJwtFromHeader } = require("../lib/jwt");
const { verifyToken } = require("../lib/jwt");


module.exports = {

  name: 'jwt-policy',

  policy: (actionParams) => {
    return (req, res, next) => {
      console.log('test plugin');
      const jwt = getJwtFromCookies(req) || getJwtFromHeader(req);

      try {
        req.user = verifyToken(jwt);
        console.log('plugin:', req.user);

      } catch (e) {
        res.send(401);

      }

      next() // calling next policy
    };
  }
};

API ゲートウェイでは、パスを指定しないとプラグインが適切に呼び出されます。
しかし、このようなワイルドカードを使用してパスを配置すると、呼び出されません (すべてのルートでプラグインを呼び出したくないし、単一の「正確な」パスも必要ありません:

  user:
    apiEndpoints:
    - user
    policies:
      - jwt-policy:
          condition: # this action is executed only if path is exactly /v1/auth
            name: pathExact
            path: '/v1/auth/*'

これの正しい宣言は何ですか/ドキュメントのどこにありますか?

4

1 に答える 1