Couchdb 数据库同步授权?
如何确保当前用户有权通过PockDB访问CouchDB数据库?在我的实验中,使用CouchDB数据库名调用新的PockDB()方法可以访问该数据Couchdb 数据库同步授权?,couchdb,pouchdb,Couchdb,Pouchdb,如何确保当前用户有权通过PockDB访问CouchDB数据库?在我的实验中,使用CouchDB数据库名调用新的PockDB()方法可以访问该数据 在Futon中将require_valid_user设置为true似乎有效,但通过POST/_会话验证用户后,Futon模式窗口仍会弹出。我希望有一个标准的登录屏幕(用户名和密码),将用户登录到我的应用程序中,并授予对正确的CouchDB数据库的访问权(通过PockDB)。我能做这个吗?任何帮助都将不胜感激。有一个由Nolan Lawson构建的Poc
在Futon中将require_valid_user设置为true似乎有效,但通过POST/_会话验证用户后,Futon模式窗口仍会弹出。我希望有一个标准的登录屏幕(用户名和密码),将用户登录到我的应用程序中,并授予对正确的CouchDB数据库的访问权(通过PockDB)。我能做这个吗?任何帮助都将不胜感激。有一个由Nolan Lawson构建的PockDB插件,为PockDB提供身份验证API:
var db = new PouchDB('http://mysite:5984/mydb');
db.login('batman', 'brucewayne').then(function (batman) {
console.log("I'm Batman.");
return db.logout();
});
以下是它混合使用的方法:
- 报名
- 登录
- 注销
- getSession
- getUser
var user = {
name: 'admin',
password: 'admin'
};
var pouchOpts = {
skip_setup: true
};
var ajaxOpts = {
ajax: {
headers: {
Authorization: 'Basic ' + window.btoa(user.name + ':' + user.password)
}
}
};
var db = new PouchDB('http://localhost:5984/test', pouchOpts);
db.login(user.name, user.password, ajaxOpts).then(function() {
return db.allDocs();
}).then(function(docs) {
console.log(docs);
}).catch(function(error) {
console.error(error);
});
我使用数据库身份验证进行同步
npm i pouchdb-authentication
插件导入
var PouchDB = require("pouchdb");
PouchDB.plugin(require('pouchdb-authentication'));
代码:
您可能想签出此插件,
skipSetup
属性已更改为skip\u setup
var localDb = new PouchDB('mydatabase');
var remoteDb = new PouchDB('http://localhost:5984/mydatabase', {skip_setup: true});
remoteDb.login(username, password).then(function () {
localDb.sync(remoteDb, {live: true, retry: true, /* other sync options */});
});