2016-08-05 13 views
3

私は仮想Linuxマシンでcouchdbを実行しています。このデータベースにはCorsが有効になっており、セットアップされています。私はadminユーザーと パスワードをdbに追加しました。またrequire_valid_userがtrueに設定されています。 以下のコードを使用して、webページのpouchdbとcouchdbをオンラインで同期しようとしています。私がdb(1以下)のアドレス を渡すだけで、ユーザとパスワードを求めるダイアログボックスが表示されます。同期はこの例では機能します。 URLにユーザー名とパスワードを渡そうとすると(以下の2のように)、同期エラーが発生し、 「getCheckpointは拒否されました」というメッセージが表示されます。 私が間違ってやっていることについての提案や、これと一緒に取るべき別のアプローチは非常に高く評価されます。ユーザIDとパスワードを使用したCouchdbの同期アクセス

ありがとう

P.S.ユーザーとパスワードを使用してURLを参照できます。

var remoteCouch = "http://192.168.1.7:5984/mydb"; //1 
//var remoteCouch = "http://userid:[email protected]:5984/mydb"; //2 
sync(); 

function sync() { 
    var opts = {live: true}; 
    db.sync(remoteCouch,opts,syncError); 
} 

答えて

3

cloudant.comのcouchDBに同期しようとするのとまったく同じエラーメッセージで同じ問題が発生しました。私の場合、解決策は、リモートサーバーのURLにhttp://の代わりにhttps://を使用することでした。 URLの 形式は次のようになります。

https://<api_key>:<key_passwd>@<username>.cloudant.com/<db_name>

だから私はこれをテストするためにローカルにインストールDBを持っていませんが、私はあなたのエラーはソファが安全な接続への要求をリダイレクトすることに起因疑い資格情報を提示します(シナリオ1)。シナリオ2では、リダイレクトは発生しません。

関連する問題