【发布时间】:2018-12-25 03:50:28
【问题描述】:
我已经为此工作了数周,需要一些指导。我没有使用 MongoDB 或 Phoenix 等。我使用的是 php (Laravel),我的数据的核心是 JSON。我想直接从 javascript 保存数据。因此,用户的数据在本地保存在 pouchdb 中,每个用户解决方案一个数据库,并同步到 couchdb Bitnami AWS(亚马逊网络服务器)上的远程 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 中的安全控制方式,它无法工作。发布此内容的人提到了“Rails 或 Phoenix”:
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 找出了 Token:
$hash = hash_hmac("sha1", $user_name, $secret);
【问题讨论】:
-
我最终使用了 pouchdb.authentication.js 库。现在已经足够好了。还有 Alex,我还能格式化什么?
-
现在格式更好了,但是你发布的第一个版本需要严格的格式,这就是我留下评论的原因
标签: javascript php couchdb php-curl