UNPKG

@ai-growth/n8n-nodes-wordpress

Version:

n8n node for WordPress integration with AI GROWTH - SEO WP plugin

95 lines 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthHeaderManager = void 0; /** * Classe utilitária para gerenciar cabeçalhos de autenticação */ class AuthHeaderManager { /** * Construtor da classe * @param credentials Credenciais do WordPress */ constructor(credentials) { this.credentials = credentials; // Gerar token de autenticação básica this.authToken = Buffer.from(`${credentials.username}:${credentials.password}`).toString('base64'); } /** * Define o token de nonce (se necessário para algumas operações) * @param nonce Token de nonce */ setNonce(nonce) { this.nonceToken = nonce; } /** * Obtém os cabeçalhos básicos de autenticação * @returns Cabeçalhos de autenticação */ getBasicHeaders() { return { 'Authorization': `Basic ${this.authToken}`, 'Content-Type': 'application/json', 'Accept': 'application/json', }; } /** * Obtém cabeçalhos para upload de mídia * @param formDataHeaders Cabeçalhos específicos do FormData * @returns Cabeçalhos para upload */ getMediaUploadHeaders(formDataHeaders) { return { 'Authorization': `Basic ${this.authToken}`, 'Content-Type': 'multipart/form-data', 'Accept': 'application/json', ...formDataHeaders, }; } /** * Obtém cabeçalhos com nonce de segurança * @returns Cabeçalhos com nonce */ getHeadersWithNonce() { const headers = this.getBasicHeaders(); if (this.nonceToken) { headers['X-WP-Nonce'] = this.nonceToken; } return headers; } /** * Atualiza as credenciais * @param credentials Novas credenciais */ updateCredentials(credentials) { this.credentials = credentials; // Regerar token de autenticação this.authToken = Buffer.from(`${credentials.username}:${credentials.password}`).toString('base64'); } /** * Verifica se os cabeçalhos contêm autenticação * @param headers Cabeçalhos a verificar * @returns Verdadeiro se os cabeçalhos contêm autenticação */ static hasAuthHeader(headers) { return Boolean(headers && headers['Authorization']); } /** * Obtém os cabeçalhos para uma solicitação específica * @param contentType Tipo de conteúdo * @param useNonce Se deve incluir o nonce * @returns Cabeçalhos apropriados */ getHeaders(contentType = 'application/json', useNonce = false) { const headers = { 'Authorization': `Basic ${this.authToken}`, 'Content-Type': contentType, 'Accept': 'application/json', }; if (useNonce && this.nonceToken) { headers['X-WP-Nonce'] = this.nonceToken; } return headers; } } exports.AuthHeaderManager = AuthHeaderManager; //# sourceMappingURL=AuthHeaderManager.js.map