【问题标题】:How to get node current user in an angular view如何在角度视图中获取节点当前用户
【发布时间】:2015-06-17 16:55:11
【问题描述】:

我正在使用一个sails.js 后端,使用passport 进行身份验证,以及一个angular.js 前端。我的应用程序允许用户登录并保存他们的信息。现在,我可以通过角度控制器中的 $http 获取这些用户的列表,并将它们显示在视图中。但是,我完全无法获得当前用户。我对这种编程很陌生,到目前为止,网上没有任何东西能真正帮助我理解我需要做什么。谁能提供一个示例或告诉我需要做什么才能仅检索当前登录的用户,而不是所有用户?

【问题讨论】:

    标签: angularjs node.js sails.js


    【解决方案1】:

    一旦您通过 Passport 对用户进行身份验证,它会将当前用户作为 request.user 保存到 request 对象中。

    您可以在 API 中创建一个端点来返回该对象,然后使用 Angular 获取它。

    【讨论】:

    • 感谢您的回复。我使用的是帆后端,而不是快递。我了解该信息存储在 req.user 中。我只是不知道如何在我的 angular.js 控制器中获取 req.user 中的内容以在视图中使用。
    • 啊,抱歉。如果您有一个为身份验证或用户指定的控制器,您可以在其中创建一个端点来执行此操作。像/me 这样的东西。语法几乎相同 - 您仍在创建一个接受requestresponse 的函数,您只需将request.user 发送到前端。至于 Angular - 你是否使用了身份验证框架?
    • 我在后端确实有一个 AuthController.js。 /我到底是什么?我已经看到并阅读了很多关于它的内容,但我没有得到太多的解释。另外,一旦编写完成,函数 SEND req.user 将如何发送到前端?而且我不知道角度的身份验证框架。我应该吗?
    【解决方案2】:

    在 api/controllers/UserController.js 中。这个sails函数返回req.user中的当前用户信息。

       module.exports = {
         getUser: function(req,res) {
           return res.send(req.user);
    };
    

    在 config/routes.js 中。这是 UserController.js 中“getUser”函​​数的路径。

    '/getUser': {
       controller: 'UserController',
       action: 'getUser'
    }
    

    在 assets/js/controllers.js 中,这里是对 UserController.js 中“getUser”函​​数的 $http 请求。这是您从 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>
    

    我在互联网上搜索了一周的高低,以寻找有关如何执行此操作的答案,并最终想出了这个。我看到很多人(尤其是在这个网站上)都问过同样的问题,但我从来没有真正找到一个好的、明确的答案。所以我想我会发布我想出的内容作为我自己问题的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多