2016-07-20 49 views
1

我是使用服务器脚本的新手,我确信这是一个非常简单的答案,但我还没有找到任何我在寻找的东西。我正在使用azure移动服务来检索和输入用户信息,并希望阻止用户看到其他用户的身份证号码。Azure移动服务脚本

读取数据,该方案提出了以下HTTP请求

"GET http://Servicename.net/tables/TableName?$top=1&$orderby=__createdAt%20desc&$filter=id+eq+'"+id+"' HTTP/1.1" 

ID是用户当前的帐户确定的,但我不希望用户能够删除ID ,提出请求,如以下和检索整个表与其他用户ID

"GET http://Servicename.net/tables/TableName HTTP/1.1" 

沿着我想什么做的是使用服务器端脚本,特别是读操作的脚本,以确保相关请求一个与它相关的id,只有数据才智h返回特定的ID。

我曾尝试以下:

function read(query, user, request) { 
if(request.parameter.id != null){ 
request.execute(); 
    } 
} 

这是不行的,所以我的问题是如何从http请求获取ID号和脚本中使用它呢?我希望我的问题很清楚,并且非常感谢任何帮助!

回答

0

如果您想在移动服务的表操作中检索用户标识。您可以使用第二个参数user,该参数始终是代表提交请求的用户的user object

,你可以找到一个代码段,https://azure.microsoft.com/en-us/documentation/articles/mobile-services-how-to-use-server-scripts/#table-scripts解释用法:

function insert(item, user, request) { 
    if (item.userId !== user.userId) { 
     request.respond(statusCodes.FORBIDDEN, 
     'You may only insert records with your userId.'); 
    } else { 
     request.execute(); 
    } 
} 

请参考Work with a JavaScript backend mobile service有关移动服务在Node.js的更多信息

此外,现在我们建议使用移动应用程序而不是移动服务。有关详细信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-value-prop-migration-from-mobile-services/