0

promise でデータベースから選択したルートを渡すと、認証が機能しません。つまり、渡されたルートのリクエストは常に承認されます。

protected applyRoutes(consumer: MiddlewaresConsumer) {
    let paths = this.authPathService.findAll();

    paths.then((resultPaths) => {
        let result: {}[] = [];
        for (let path of resultPaths) {
            result.push({
                path: path.path,
                method: RequestMethod.ALL
            })
        }
        consumer
            .apply(passport.authenticate('jwt', { session: false }))
            .forRoutes(...result);

        return result;
    }, (error) => {
        console.log('error', error);
    });
}

オブジェクト配列でルートを渡すとうまく機能します

protected applyRoutes(consumer: MiddlewaresConsumer) {
    consumer
        .apply(passport.authenticate('jwt', { session: false }))
        .forRoutes(...[
            { path: '/auth/authorized', method: RequestMethod.ALL },
            { path: '/auth/test', method: RequestMethod.ALL }]);

}
4

1 に答える 1