我正在开发一个带有登录功能和其他api的休息服务器(所有这些都经过身份验证验证,并且都启用了cors)。
所以我有myhost / api / login(我可以在帖子中传递电子邮件和密码)
另一方面,我有一些客户,在我的情况下写了angular,我希望他们可以使用那个api登录。
例如,请查看此客户端代码:
(function() {
angular.module('controller.auth', [])
.controller("authController", ['$q','$scope', '$interval', '$http', '$cookies', function( $q, $scope, $interval,$http, $cookies) {
console.log('auth');
$scope.whoami = false;
$scope.login = function() {
$http({
method: 'POST',
url: 'http://api.marketplace.local:1337/login',
headers: {
'Content-Type': 'application/json'
},
data: {email: 'myemail@email.com', password: 'password'}
})
.then(function(res) {
$scope.logged = true;
}, function(res) {
console.log('error');
console.log(res);
});
}
$scope.me = function() {
$http({
method: 'POST',
url: 'http://api.marketplace.local:1337/api/user/me',
headers: {
'Content-Type': 'application/json'
}
})
.then(function(res) {
$scope.me = res.data;
}, function(res) {
console.log('error');
console.log(res);
});
}
}])
})();
这是html:
<div ng-controller="authController">
<div ng-click="login()" style="cursor: pointer">LOGIN</div>
<div ng-show="logged" ng-click="me()" style="cursor: pointer">WHOAMI</div>
<div ng-show="whoami">Hi, I'm {{whoami.email}}</div>
</div>
当我点击LOGIN时,登录成功,但是当我点击WHOAMI时我就是403.
那么,我如何使用登录功能对下次通话进行身份验证?
我的意思是,我想在登录后从响应中获取cookie并将其设置为下一次调用,但是如果我从firebug中看到cookie,我也无法从$ http()。那么()。< / p>
另一个想法是在登录响应中发送sessionId,但我无法弄清楚如何使用它。
我需要一些建议去哪看。