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"]
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?
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.