import axios from 'axios';
import * as jwt from 'jsonwebtoken';
import { Action } from 'routing-controllers';
import { Connection } from 'typeorm';
import { env } from '../env';
export function authorizationChecker( connection: Connection): (action: Action, roles: any[]) => Promise<boolean> | boolean {
let validationKey: any = axios.get(env.auth.jwksUri).then(response => {
validationKey = response.data.keys[0].value;
}).catch();
return async function innerAuthorizationChecker(
action: Action,
roles: string[]
): Promise<boolean> {
// here you can use request/response objects from action
// also if decorator defines roles it needs to access the actio
// you can use them to provide granular access check
// checker must return either boolean (true or false)
// either promise that resolves a boolean value
try {
const token = (action.request.headers.token ||
action.request.headers.authorization).replace('Bearer ', '');
await jwt.verify(token, validationKey);
return true;
} catch (e) {
return false;
}
};
}
Это моя ошибка:
ошибка: [приложение] Приложение аварийно завершено: TypeError: self._callback.apply не является функцией (узел: 512) UnhandledPromiseRejectionWarning: необработанное отклонение обещания (идентификатор отклонения): 1): TypeError: Невозможно прочитать свойство '0' из неопределенного (узел: 512) [DEP0018] DeprecationWarning: Необработанные отклонения обещания устарели.В будущем отклонения обещания, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.
Я пытаюсь получить ключ проверки из определенного URL-адреса службы, нокаким-то образом (без вызова функции) он говорит, что данные ответа не определены.Кроме того, у меня появляется эта ошибка: self._callback.apply не является функцией.
Кто-то имел дело с такой ошибкой обратного вызова раньше?Я не смог найти ничего в стеке потока, касающегося моей проблемы.