n8n
Version:
n8n Workflow Automation Tool
48 lines • 2.42 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OAuthJweDecryptService = void 0;
const di_1 = require("@n8n/di");
const n8n_workflow_1 = require("n8n-workflow");
const oauth_jwe_key_service_1 = require("./oauth-jwe-key.service");
const oauth_jwe_utils_1 = require("./oauth-jwe.utils");
const JWE_TOKEN_FIELDS = ['access_token', 'id_token'];
let OAuthJweDecryptService = class OAuthJweDecryptService {
constructor(keyService) {
this.keyService = keyService;
}
async decryptOAuth2TokenData(tokenData) {
const { privateKey } = await this.keyService.getKeyPair();
const result = { ...tokenData };
let presentAny = false;
let decryptedAny = false;
for (const field of JWE_TOKEN_FIELDS) {
const value = result[field];
if (value === undefined || value === null)
continue;
presentAny = true;
if ((0, oauth_jwe_utils_1.isJweToken)(value)) {
result[field] = await (0, oauth_jwe_utils_1.decryptJweToken)(value, privateKey);
decryptedAny = true;
}
}
if (presentAny && !decryptedAny) {
throw new n8n_workflow_1.UserError('Expected at least one JWE-encrypted token but received only plaintext');
}
return result;
}
};
exports.OAuthJweDecryptService = OAuthJweDecryptService;
exports.OAuthJweDecryptService = OAuthJweDecryptService = __decorate([
(0, di_1.Service)(),
__metadata("design:paramtypes", [oauth_jwe_key_service_1.OAuthJweKeyService])
], OAuthJweDecryptService);
//# sourceMappingURL=oauth-jwe-decrypt.service.js.map