如何使用angular.js获取strongloop中的用户信息

时间:2015-08-09 18:58:34

标签: loopbackjs strongloop

我尝试了很多方法来使用strongloop获取用户列表/函数,并使用lb-ng生成angular.js服务。每当我尝试获取任何用户功能时,我都会收到未经授权的消息。

为什么生成的服务文件包含用户功能而无法从前端调用它。许多文章说这是故意的。这是一个错误还是我做错了?

这是我用来检查重复用户的代码。

angular.module('app')
    .controller('UserCtrl', ['$scope', 'User',
        function ($scope, User) {
            $scope.data = {};
            $scope.verificationSent = false;
            $scope.duplicateUser = false;

            $scope.create = function () {
                User
                    .create($scope.data)
                    .$promise
                    .then(function () {
                        $scope.verificationSent = true;
                        console.log('User %s created successfully!', $scope.data['username']);
                    })
            }

            $scope.usernameExists = function () {
                User
                    .findOne({
                        where: {
                            username: $scope.data['username']
                        }
                    })
                    .$promise
                    .then(function (result) {
                        console.log(result);
                    })
            }

        }
    ])

以下是我从前端打电话的方式。

<form  class="form-horizontal" name="form" ng-submit="form.$valid && usernameExists()" novalidate>

这是返回的错误。

GET http://0.0.0.0:3000/api/Users/findOne?where=%7B%22username%22:%22test%22%7D 401 (Unauthorized)

附上截图... 我现在已经尝试了好几周了,请帮助......

getting the existing user with same username

1 个答案:

答案 0 :(得分:0)

strongloop创建的后端服务需要您在通话中缺少的正确授权。 / Users get调用配置为DENY所有请求,如果要打开它,则必须明确说明。但是在执行此操作时要小心,您可能会暴露通常不受欢迎的私有用户凭据。你想要做的是创建一个服务器端调用,检查用户名是否重复并做出相应的响应,你可以允许所有人调用此调用,然后从Angular调用它并执行你需要的操作。希望解释清楚。

UPDATE 以下是修改ACL的指南:https://docs.strongloop.com/display/public/LB/Controlling+data+access