喂?有人可以帮我在使用AngularJS的CouchDB上进行cookie身份验证吗?
这是我的代码:
var app = angular.module('app', []);
app.controller('mainController', ['$scope','$http', function($scope,$http){
//Authentification cookie
$http.({
url: 'http://localhost:5984/_session',
method: 'POST',
headers: {
Accept: 'application/json',
Content-Type: 'application/x-www-form-urlencoded'
},
data:{
name: "packy",
password: "packy8"
}
}).then(function(response){
console.log(response.headers);
});
}
问题?我无法阅读The AuthSesssion Cookie。
答案 0 :(得分:0)
Cookie通过HTTP标头发送。如果你有一个cookie作为回应,你必须深入了解响应标题。
或者,您可以ask the browser via JavaScript将自动存储的Cookie数据提供给浏览器会话。
答案 1 :(得分:0)
要从CouchDB接收AuthSession cookie,您需要对_session执行POST请求。你得到的cookie标有一个HttpOnly标志,所以如果不是不可能从浏览器中读取它是很棘手的(至少我不能)。
一旦你有了cookie,对_session的GET请求将返回登录用户,你不需要做任何其他事情。我遇到的一个问题是欺骗浏览器提示“保存此网站的密码”消息,似乎他们希望POST请求来自标准HTML表单而不是ajax请求。我最终得到的是使用Angular $ http发送POST请求之间的混合,然后如果成功完成对_session的完整表单请求以及设置“下一个”查询参数,那么我将返回到我需要的任何页面(否则你被困在localhost:5984 / _session页面上。