カスタム 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/*'
これの正しい宣言は何ですか/ドキュメントのどこにありますか?