使用sails LocalStrategy来获得简单的身份验证

时间:2015-11-24 18:04:54

标签: angularjs authentication cookies sails.js restful-authentication

我正在开发一个带有登录功能和其他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,但我无法弄清楚如何使用它。

我需要一些建议去哪看。

0 个答案:

没有答案