Un usuario pregunt贸 馃憞
Cualquier sugerencia sobre c贸mo autenticar el inicio de sesi贸n por solicitud. Intent茅 configurar el encabezado de Autenticaci贸n, junto con el encabezado de origen permitido controlado por acceso est谩ndar en el servidor, pero no tuve la suerte de ir a los puntos finales / wp-json / wp / v2 /.
La autenticaci贸n de curva b谩sica funciona perfectamente, $ curl 鈥搖ser usuario: contrase帽a / wp-json / pero no puede obtenerla a trav茅s de una aplicaci贸n de b煤squeda basada en navegador que se encuentra en un dominio diferente al sitio de WordPress.
Este tema fue modificado hace 2 a帽os, 4 meses por.
(@kevinvess)
Hace 2 a帽os, 4 meses
隆Hola, gracias por usar Force Login!
Simplemente confirme, 驴su solicitud JS funciona cuando el inicio de sesi贸n forzado est谩 desactivado?
Si la autenticaci贸n de tres curvas est谩 funcionando, 驴quiz谩s podr铆a probar las llamadas AJAX en su aplicaci贸n curl?
O bien, consulte este hilo para ver algunas alternativas para autenticar la API WP REST en su sitio de WordPress que ejecuta Forzar inicio de sesi贸n: https://wordpress.org/support/topic/jwt-authentication/
Lanzador de hilos
(@atomicadam)
Hace 2 a帽os, 4 meses
Hola Kevin: gracias por escribir el plugin.
S铆, la aplicaci贸n de recuperaci贸n funciona perfectamente cuando el plugin est谩 desactivado.
Tambi茅n el mismo intento de rizo funciona perfectamente. Por lo tanto, lo m谩s probable es que CORS emita esto y espero que lo haya intentado usted mismo.
La aplicaci贸n de recuperaci贸n se parece a esto
fetch(endpoint, {
headers: new Headers {
'Authenticate': 'Basic user:password'
},
redirect: 'follow'
})
.then(res => res.json())
.then(json => console.log(json));
Mirando la documentaci贸n de recuperaci贸n, ahora veo que no he establecido un valor de clave de modo, lo intentar茅. Tambi茅n aparecer谩n mensajes de error m谩s espec铆ficos.
Esta respuesta fue modificada hace 2 a帽os, 4 meses. Lanzador de hilos
(@atomicadam)
Hace 2 a帽os, 4 meses
Lo m谩s probable es que esto sea solo una configuraci贸n de servidor. Si puedo hacer que funcione, lo publicar茅.
Lanzador de hilos
(@atomicadam)
Hace 2 a帽os, 4 meses
Pude resolver esto, aunque no estoy seguro de si siempre estoy 100% dispuesto a devolver 200 en una solicitud de OPCIONES (la redirecci贸n a readme.html 200 volver谩 en la solicitud de OPCIONES preliminares). Pero aqu铆 se activan la aplicaci贸n de recuperaci贸n y la configuraci贸n .htaccess que funciona con Forzar inicio de sesi贸n.
fetch(endpoint, {
headers: new Headers({
'Authorization': 'Basic ' + Buffer.from('user:pass').toString('base64'),
'Content-Type': 'application/json; charset=utf-8'
}),
credentials: 'include',
mode: 'cors',
method: 'GET',
redirect: 'follow'
})
.then(res => res.json())
.then(json => console.log(json))
y
<IfModule mod_headers.c>
Header unset Access-Control-Allow-Origin
Header always set Access-Control-Allow-Origin "http://localhost:3000"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, PUT, DELETE"
Header always set Access-Control-Allow-Headers "Origin,Content-Type,Accept,Authorization,X-Requested-With"
Header unset Access-Control-Allow-Credentials
Header always set Access-Control-Allow-Credentials true
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ readme.html [QSA,L]
</IfModule>
<LimitExcept OPTIONS>
AuthType Basic
AuthName "API Service"
AuthUserFile .htpasswd
Require valid-user
</LimitExcept>
No he probado esto con una buena reescritura de URL, todav铆a, por lo que el punto final parece: http://api.site.com/?rest_route=/wp/v2/pages/2/
Esta respuesta fue modificada hace 2 a帽os, 4 meses. Esta respuesta fue modificada hace 2 a帽os, 4 meses. Esta respuesta fue modificada hace 2 a帽os, 4 meses. Lanzador de hilos
(@atomicadam)
Hace 2 a帽os, 4 meses
en realidad, esto solo funciona porque est谩 conectado a la administraci贸n de WP, por lo que la b煤squeda env铆a las cookies para la autenticaci贸n. no parece posible iniciar sesi贸n en WP w / JS con un navegador de otro dominio.
(@kevinvess)
Hace 2 a帽os, 4 meses
Hola, gracias por sus esfuerzos y muestras detalladas para encontrar una soluci贸n.
Force Log restringe el acceso a la API REST solo a usuarios autorizados. Mencionaste que tu aplicaci贸n de recuperaci贸n funciona cuando Forzar inicio de sesi贸n est谩 desactivado.
驴Ha probado uno de los siguientes fragmentos de c贸digo para permitir que la API WP REST vuelva a ser p煤blicamente accesible?
add_filter( 'rest_authentication_errors', '__return_true' );
O
remove_filter( 'rest_authentication_errors', 'v_forcelogin_rest_access', 99 );
Lanzador de hilos
(@atomicadam)
Hace 2 a帽os, 4 meses
Gracias Kevin. Creo que con su plugin y el archivo .htpasswd a nivel del servidor, se puede instalar una puerta de enlace de autenticaci贸n b谩sica para una interfaz discreta. Pero creo que es necesario usar la API de OAuth para conexiones m谩s seguras, lo que se ve muy bien para las aplicaciones de usuario, pero para entregar contenido a una interfaz discreta, estoy pensando en hacer un servidor Express que se conecte directamente a un servidor de WordPress MySQL. para leer datos.
驴Solucion贸 tu problema??
0 / 0