@ai-growth/n8n-nodes-wordpress
Version:
n8n node for WordPress integration with AI GROWTH - SEO WP plugin
95 lines • 3.09 kB
JavaScript
;
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