我刚刚开始学习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。请参见下面的屏幕截图:
我觉得我一直在谷歌搜索,我似乎无法弄清楚如何访问cookie。另外,我将httponly设置为false,其中包括:application.httpOnly = false in application.conf
非常感谢任何帮助。谢谢!