我已经待了好几个星期了,需要一些指导。我没有使用MongoDB或Phoenix等。我正在使用php(Laravel),数据的核心是JSON。我想直接从javascript保存数据。因此,用户数据将本地存储在pouchdb中(每个用户解决方案一个数据库),并同步到长沙发Bitnami AWS(Amazon Web Server)上的远程pouchdb中。但是,我需要身份验证以引用该远程pouchdb。有代理身份验证。我在Windows上使用Curl确认它可以正常工作,因此我必须正确配置它:
curl -X GET "http://127.0.0.1:5984/userdb-7374657665" -H "X-Auth-CouchDB-UserName:steve" -H "X-Auth-CouchDB-Roles:users" -H "X-Auth-CouchDB-Token:a615eaf122de48804df2e554ec63cb6b3014eb4d" -H "Content-Type: application/json; charset=utf-8"
我没有在API文档中找到此内容,并且我了解由于javascript中的安全性控制方式而无法使用。发布此信息的人称为“铁路或凤凰”:
remoteDb = new PouchDB("http://localhost:5984/userdb-7374657665", {
skipSetup: true, //Database is created when user is created
ajax: {
headers: {
'X-Auth-CouchDB-UserName':'steve',
'X-Auth-CouchDB-Roles':'users',
'X-Auth-CouchDB-Token':'a615eaf122de48804df2e554ec63cb6b3014eb4d',
'Content-Type':'application/json; charset=utf-8'
}
}
})
.on('error', function (err) {
console.log('error', err);
});
请注意,我使用php来获取在创建用户时创建的数据库名称:$user_db = "userdb-" . bin2hex($user_name);
我还用php找出了令牌:
$hash = hash_hmac("sha1", $user_name, $secret);
答案 0 :(得分:0)
我不清楚您对远程PouchDB的含义-如果您具有CouchDB,则不需要远程使用PouchDB。要进行身份验证,不需要PouchDB插件,只需要在Javascript中定义远程数据库时包括用户名和密码,如下所示:
var remotedb = new PouchDB('https://username:password@server/dbname');
“创建数据库” here的PouchDB API文档中对此进行了介绍。