如何使用angularjs在couchdb上进行cookie身份验证

时间:2015-05-10 07:02:21

标签: angularjs http authentication cookies couchdb

喂?有人可以帮我在使用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。

2 个答案:

答案 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页面上。