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>
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
ocookie_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 camposusername
ypassword
, de esta manera:Asegúrate de reemplazar
tu-nombre-de-usuario
ytu-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.