我在Azure Mobile Service工作,在那里我制作了自定义API。对于那些可以设置权限(如公共,应用程序,用户和管理员),这是非常有用的。但我需要多级api(例如/api/user/profile/{userId}
),并且能够为子级api设置一些权限。
我发现可以使用以下代码添加其他级别的api路径
exports.register = function (api) {
/* Get public user profile on some other user */
api.get('/profile/:userId', getProfileFunc);
/* Get private profile only for the authenticated user */
api.get('/profile', getProvateProfileFunc);
/* Update provate profile only for the authenticated user */
api.put('/profile', updateProfileFunc);
}
exports.get = getUserListFunc;
api权限是通过顶级的{api-name} .json文件设置的。
但是如何设置与父api不同的子级别api 的权限?举例说明:
GET:api / user获取用户列表并且是权限 application
GET:api / user / profile获取(经过身份验证的)用户的配置文件,因此需要权限 user 。
user.json 中的权限是
{
"routes": {
"*": {
"get": {"permission": "application"},
"post": {"permission": "admin"},
"put": {"permission": "admin"},
"patch": {"permission": "admin"},
"delete": {"permission": "admin"}
}
}
}
我正在使用连接到我的WAMS的git存储库。
答案 0 :(得分:2)
.json文件支持路由。请尝试以下方法:
{
"routes": {
"/" : { "permission": "public" },
"/user/profile/:userId" : {
"get": { "permission": "public" },
"post": { "permission": "authenticated" }
}
}
}