我尝试了很多方法来使用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)
附上截图... 我现在已经尝试了好几周了,请帮助......
答案 0 :(得分:0)
strongloop创建的后端服务需要您在通话中缺少的正确授权。 / Users get调用配置为DENY所有请求,如果要打开它,则必须明确说明。但是在执行此操作时要小心,您可能会暴露通常不受欢迎的私有用户凭据。你想要做的是创建一个服务器端调用,检查用户名是否重复并做出相应的响应,你可以允许所有人调用此调用,然后从Angular调用它并执行你需要的操作。希望解释清楚。
UPDATE 以下是修改ACL的指南:https://docs.strongloop.com/display/public/LB/Controlling+data+access