我使用sails.js后端,使用护照进行身份验证,以及使用angular.js前端。我的应用程序允许用户登录并保存他们的信息。现在,我可以通过角度控制器中的$ http获取这些用户的列表,并在视图中显示它们。但是,我完全难以获得当前用户。我对这种编程很陌生,到目前为止,网上没有任何东西真正帮助我理解我需要做什么。任何人都可以提供一个示例或告诉我需要做什么来检索当前登录的用户,而不是所有用户?
答案 0 :(得分:3)
通过Passport对用户进行身份验证后,它会将当前用户保存为request
request.user
对象。
您可以在API中创建一个返回该对象的端点,然后使用Angular获取该端点。
答案 1 :(得分:3)
在api / controllers / UserController.js中。此sails函数返回req.user中的当前用户信息。
module.exports = {
getUser: function(req,res) {
return res.send(req.user);
};
在config / routes.js中。这是通往' getUser'的路线。 UserController.js中的函数。
'/getUser': {
controller: 'UserController',
action: 'getUser'
}
在assets / js / controllers.js中,这是$ getUser'的$ http请求。 UserController.js中的函数。这是您从req.user获取信息到前端的方式。
angular.module('myApp.controllers', []).
controller('myCtrl', ['$scope', '$http', function($scope, $http) {
$http.get("http://localhost:1337/user/getUser").then(function(result) {
$scope.currentUser = result.data;
})
}]);
在assets / js / app.js中,确保将您的角度路线设置为您的视图。
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/view', {templateUrl: 'partials/view.html', controller: 'myCtrl'});
}]);
将此代码(带有您自己的变量/路由/服务器信息)放在正确的位置后,您可以像这样访问视图中的当前用户
<div ng-controller="myCtrl">
{{ currentUser.email }} <br>
{{ currentUser.username }} <br>
{{ currentUser.etc }}
</div>
我在互联网上搜索了一个星期,以寻求如何做到这一点的答案,并最终得出了这个。我看到很多人(特别是在这个网站上)提出了同样的问题,我从来没有真正找到一个好的,明确的答案。所以我想我会发布我提出的问题作为我自己问题的答案。