Desenvolvendo com WordPress pergunta do WordPress: A chamada REST Ajax ignora autenticação básica

Um usuário perguntou ?

Olá a todos,

Eu quero fazer uma chamada REST (que requer autorização) para WordPress de um site externo. Li a documentação e instalei o plugin necessário para que a autenticação básica funcione.

Funciona perfeitamente quando aplicado através do Postman. Mas quando a solicitação Ajax (jQuery) é feita do meu site externo, parece que a solicitação sempre tenta usar o cookie do WordPress em vez da autenticação básica ou tenta fazer a solicitação sem nenhuma autorização. Eu continuo recebendo um erro 401.

Já tentei várias formas de corrigir as informações de autorização e nenhuma delas funcionou até agora: beforeSend, headers field,… Não é ignorado, mesmo que as credenciais inválidas interfiram em alguma coisa. A verificação da solicitação nas ferramentas do desenvolvedor do Chrome revela que o cabeçalho de autorização está definido nos cabeçalhos da solicitação.

O que devo fazer para fazer uma chamada REST (quero comentar por post) de um site externo? Agradeço qualquer ideia!

Este tópico foi modificado 2 anos, 5 meses atrás por. Este tópico foi modificado 2 anos, 5 meses atrás por.

(@bcworkz)

2 anos, 5 meses atrás

você está usando o Autenticação básica plugue? Note que não é muito seguro. Recomendo uma das alternativas.

Para usar técnicas Ajax com Basic-Auth, eu me concentraria na autorização lançando um cabeçalho “Authorized” apropriado construído como WP_Http no meu primeiro link. Em vez de usar o código jQuery/JavaScript para fazer isso. Codificação Base64 com btoa() (limitada a caracteres de 8 bits). Enviar cabeçalhos para beforeSend: parâmetro .ajax(). Acho que isso é feito com xhr.setRequestHeader(), mas estamos saindo da minha área de atuação.

lançador de tópicos

(@dukan90)

2 anos, 5 meses atrás

Foi exatamente o que fiz: enviei os cabeçalhos autorizados corretos, com codificação btoa(), etc. Eu tentei tantas versões que encontrei na internet e nada funcionou até agora. Toda vez que o cabeçalho de autorização parece ser ignorado e o cookie de autorização do usuário de login atual é usado (quando dentro de um contexto wordpress, é claro, erro 401 caso contrário).

Em relação a vários métodos de autorização: tentei usar a abordagem OAuth, mas não tenho certeza se esse método é o caminho a seguir para o meu caso de uso: basicamente não tenho um único aplicativo do lado do cliente (HTML/JS) e faria solicitações de autenticação para a API do WordPress. Como você abordaria isso em geral?

(@bcworkz)

2 anos, 5 meses atrás

Qual cliente em particular? Navegador? Nesse caso, eu esperaria pela autenticação do cookie ou faria solicitações normais do Ajax. Não tenho certeza de onde oAuth se encaixaria. É verdade que é trivial para corrigir. Existem também algumas outras opções. Veja o link “alternativas” na minha última resposta. JSON Web Tokens parece perfeito para um aplicativo JS, embora eu não tenha experiência com isso.

Isto foi útil?

0 / 0

Deixe uma resposta 0

O seu endereço de email não será publicado. Campos obrigatórios são marcados *