Route Middleware で Passport JS Bearer Authentication を使用する NodeJS で記述された次のコードがあります。
app.put('/api/customers/:id', passport.authenticate('bearer', {session : false}), handlers.putCustomers);
app.put('/api/products/:id', passport.authenticate('bearer', {session:false}), handlers.putProducts);
すべてのエンドポイントに使用する代わりに、passport.authenticate
これをすべてのエンドポイントにグローバルに適用したいと考えています。
うまくいかないミドルウェアの次の順序で試しました
var app = express();
app.use(bodyParser());
app.use(session({ store: new RedisStore({client:client}),secret: 'keyboard cat' }));
app.use(passport.initialize());
passport.use(new BearerStrategy(){....
app.use(passport.authenticate('bearer', {session:false}));
app.put('/api/customers/:id', handlers.putCustomers);
app.put('/api/products/:id', handlers.putProducts);
エンドポイントにヒットすると 401 が返されます..「PUT」ではなく「OPTIONS」タイプで表示されますが、それが役立つか意味がある場合は.(chrome を使用してアプリの UI からエンドポイントをテストします)。