从Angular.js中的Play Framework 2.2(Java)获取/设置会话cookie

时间:2015-02-20 05:29:16

标签: java javascript angularjs web-services playframework

我刚刚开始学习Angular,并决定使用Java中的Play framework 2.2构建后端API。我之前在Play中编写了Web应用程序,但我只使用了Jquery,现在我正面临着与Angular的一些混淆。我正在尝试编写一个身份验证服务,我传递用户名和密码,然后将cookie保存在Angular应用程序中。这是我的代码:

Authentication.js:

    (function(){

    var authentication = function($rootScope, $http, $cookieStore){
        var service = {};

        service.login = function(username, password, callback){
            $http.post("http://localhost:9000/login", {userName: username, password: password})
                .success(function(data, status, header){
          console.log(data);
          console.log(status);
          console.log(Object.keys(header));

                    callback(data, status, header);
                });
        };

        service.setCredentials = function(data){
      console.log("setting credentials");
        }

        return service;
    };
    var module = angular.module("listr");
    module.factory("AuthenticationService", authentication);
}());

LoginCtrl.js:

(function(){
    var module = angular.module("listr");

    var LoginCtrl = function($scope, AuthenticationService){
        $scope.login=function(){
            console.log("Logging in");
            AuthenticationService.login($scope.username, $scope.password, function(data, status, header){

                if(status == 200){
                    AuthenticationService.setCredentials(data, status, header);
                }
                else{
                    alert("error logging in");
                }
            });
        };

    };
    module.controller("LoginCtrl", LoginCtrl);
}());

当我在我的应用程序中提交表单时,我恢复了200 ok状态,但我不确定如何获取播放的cookie返回。我可以在Web控制台的网络请求中看到cookie。请参见下面的屏幕截图:

Network request

我觉得我一直在谷歌搜索,我似乎无法弄清楚如何访问cookie。另外,我将httponly设置为false,其中包括:application.httpOnly = false in application.conf

非常感谢任何帮助。谢谢!

0 个答案:

没有答案