Autenticação Básica com o CouchDB

estou a tentar descobrir como usar a Autenticação Básica (isto é, http://test:test@localhost:5984/mydb) no CouchDB 1.3.1.

no futuro:

  • eu crio uma base de dados mydb
  • Eu configurei dois utilizadores para isso. Emsegurança tab: um membro com acesso de leitura ["test"] e um administrador ["admin"]
Então só testo a ligação.

usar o curl:

curl GET http://localhost:5984/mydb

retorna 401 não autorizado, isso é bom.

curl GET http://test:test@localhost:5984/mydb

Devolve 200, por isso tudo funciona como esperado usando o curl.

usando browser ou $.ajax:

ambos retornam 401 no url http://test:test@localhost:5984/mydb.

Então, perguntas:

  • Qual é a diferença entre usar curl GET ou uso $.ajax GET (ou navegador)?
  • estou a perder alguma configuração no CouchDB ou noutro lugar que permita efectuar este tipo de autenticação?
Author: TMichel, 2013-09-10

1 answers

Chama-se partilha de recursos de origem cruzada. Basicamente, há uma limitação nas chamadas ajax que um navegador pode fazer. É um recurso de segurança que não permite ao navegador carregar recursos de qualquer lugar arbitrariamente.

Parece que você gostaria de ser capaz de fazer isso, afinal um clique carrega um recurso arbitrário. Mas se qualquer programa javascript antigo poderia carregar quaisquer outros recursos, existem muitas maneiras de que ele poderia ser sequestrado para injectar código ou roubar informacao.

O CURL contorna isso não sendo limitado pelo CORS. Faz qualquer pedido que queira.

Além disso, pode iniciar uma sessão questionando localhost:5984/_sessão, altura em que todas as suas consultas seguintes serão enviadas com um cookie de segurança. JQuery.o couch é um bom recurso básico para algumas funções comuns.

 5
Author: fet, 2013-09-10 19:38:43