【问题标题】:How do cookie authentication on couchdb with angularjs如何使用 angularjs 在 couchdb 上进行 cookie 身份验证
【发布时间】:2015-07-20 19:58:44
【问题描述】:

喂?有人可以帮我在 CouchDB 上使用 AngularJS 进行 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);
  });
}

问题?我无法读取 AuthSesssion Cookie。

【问题讨论】:

  • 请提供有关您遇到 cookie 问题的脚本的更多信息
  • 这是我的代码,你能编辑一下吗?

标签: angularjs http authentication cookies couchdb


【解决方案1】:

Cookie 是通过 HTTP 标头发送的。如果您得到一个 cookie 作为响应,您必须深入研究响应标头。

或者,您可以ask the browser via JavaScript 提供从响应自动存储到浏览器会话中的 cookie 数据。

【讨论】:

    【解决方案2】:

    要从 CouchDB 接收 AuthSession cookie,您需要向 _session 发出 POST 请求。您获得的 cookie 标有 HttpOnly 标志,因此即使不是不可能从浏览器读取它也很棘手(至少我无法读取)。

    一旦你有了 cookie,对 _session 的 GET 请求将返回登录的用户,你不需要做任何其他事情。我遇到的一个问题是欺骗浏览器提示“保存此网站的密码”消息,似乎他们希望 POST 请求来自标准 HTML 表单而不是 ajax 请求。我最终得到的是使用 Angular $http 发送 POST 请求之间的混合,然后如果成功对 _session 执行完整的表单请求以及设置“下一个”查询参数,以便我返回到我需要的任何页面(否则你会卡在 localhost:5984/_session 页面上)。

    【讨论】:

      猜你喜欢
      • 2014-07-28
      • 2010-12-27
      • 2016-03-22
      • 2013-09-14
      • 2014-01-14
      • 2017-05-06
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      相关资源
      最近更新 更多