es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

estado no autorizado al intentar sincronizar con CouchDB

Estoy intentando conectarme a CouchDB usando svelte pero me muestra este error:

{“status”:401,”name”:”unauthorized”,”message”:”No tienes autorización para acceder a esta base de datos.”,”reason”:”No tienes autorización para acceder a esta base de datos.”}

y creo que es debido a allow_persistent_cookies o cookie_domain como se muestra en el documento.

pero no tengo idea de qué debería hacer.

<script> 
    import List from './add.svelte';
    import '@babel/polyfill';
    import { onMount } from 'svelte'
    import PouchDB from 'pouchdb-browser';
    let db = new PouchDB('db');
    const replecate=PouchDB.sync('db',"http://127.0.0.1:5984/twd2", {

    live: true,
    retry: true

}).on('change', async function(i){
    await updatoContact();
}).on('error', async function(err){
    console.log('el error de sincronización es '+ err) 

});

let contacts=[];
let fisrtName='';
let phoneNume='';

export let name;
async function addContact(event){

    const newContact = {
         name: fisrtName,
          phone: phoneNume
     } 

     // console.log(newContact);
     const sendtoDB = await db.post(newContact); 

     if(sendtoDB.ok) {
         await updatoContact();
     }



    fisrtName = ""; 
    phoneNume ="";
}


async function updatoContact(){

const allContact = await db.allDocs({
    include_docs:true 
});
contacts=allContact.rows.map(rows =>rows.doc);
console.log(contacts);

}

onMount (async() => {
    await updatoContact();
})

</script>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando acceder a una base de datos de CouchDB sin autorización adecuada. El mensaje de error sugiere que no estás autorizado para acceder a la base de datos.

    Una posible causa de este error es que las configuraciones allow_persistent_cookies o cookie_domain sean incorrectas. Es posible que desees consultar la documentación de CouchDB para asegurarte de que estas configuraciones estén configuradas correctamente.

    Otra posibilidad es que no estés pasando las credenciales de autenticación correctas al intentar conectarte a la base de datos. En tu código, estás creando una nueva instancia de PouchDB con el nombre db, pero no estás pasando ninguna opción de autenticación a la misma.

    Para solucionar este problema, debes pasar opciones de autenticación a PouchDB al crear una nueva instancia. Puedes hacer esto pasando un objeto con la propiedad auth que contenga los campos username y password, de esta manera:

    let db = new PouchDB('http://localhost:5984/db', {
      auth: {
        username: 'tu-nombre-de-usuario',
        password: 'tu-contraseña'
      }
    });
    

    Asegúrate de reemplazar tu-nombre-de-usuario y tu-contraseña con tus credenciales reales de CouchDB.

    Si aún tienes problemas con la autenticación, deberías intentar iniciar sesión en el panel de control de CouchDB y verificar los permisos para la base de datos. Asegúrate de que el usuario que estés utilizando tenga los permisos correctos para leer y/o escribir datos en la base de datos.

Comments are closed.