数据表有三种权限选择:1、所有用户都有该权限;2、仅登录用户拥有该权限;3、指定特定用户拥有该权限
,
首先在user表中创建了两条数据:用户 admin 和用户 test,用 admin 登录后去测试获取用户信息
一、仅登录仅登录用户拥有该权限
意味着只有当用户登录后才能 get 自己的user表信息,而无法获取其他用户的user表信息
测试如下:
1、取自己的用户信息
// 测试事件 —— 获取其他用户信息
function testEvent(){
// 获取登录成功后的缓存信息
// userInfo.userId:当前用户的id
// userInfo.id : 当前用户登录产生的accessToken 的 id
var userInfo = $api.getStorage('userInfo');
api.ajax({
url: 'https://d.apicloud.com/mcm/api/user/'+ userInfo.userId ,
method: 'get',
headers: {
"X-APICloud-AppId": appId,
"X-APICloud-AppKey": appKey,
"Authorization": userInfo.id // accessToken 的 id
}
},function(ret, err){
if (ret) {
console.log( JSON.stringify( ret ) );
} else {
console.log( JSON.stringify( err ) );
}
});
取到的用户数据:{"id":"5cb551ebdd22c0296c9392e2","updatedAt":"2019-04-16T08:06:31.918Z","challenges":[],"username":"admin","status":null,"email":null,"realm":null,"createdAt":"2019-04-16T03:54:19.070Z","credentials":[],"verificationToken":null,"emailVerified":null,"mobile":null}
2、获取其他用户的信息(拒绝访问)
用admin 登录,测试获取 test 用户的信息
api.ajax({
// 将URL的参数改为 test 用户的id
url: 'https://d.apicloud.com/mcm/api/user/5cb53c1e36b1898e4432659e',
method: 'get',
headers: {
"X-APICloud-AppId": appId,
"X-APICloud-AppKey": appKey,
"Authorization": userInfo.id // accessToken 的 id
}
结果为:{"statusCode":401,"body":{"error":{"statusCode":401,"message":"Access Denied","status":401,"name":"Error"}},"msg":"{\n \"error\": {\n \"name\": \"Error\",\n \"status\": 401,\n \"message\": \"Access Denied\",\n \"statusCode\": 401\n }\n}","code":2}
被拒绝访问了
二、所有用户都拥有该权限
将 user 表的权限设置为所有用户都拥有该权限时,就可以获取其他用户信息了
api.ajax({
// 将URL的参数改为 test 用户的id
url: 'https://d.apicloud.com/mcm/api/user/5cb53c1e36b1898e4432659e',
method: 'get',
headers: {
"X-APICloud-AppId": appId,
"X-APICloud-AppKey": appKey,
//放开权限后 ,就不需要该头文件即可获取信息
//"Authorization": userInfo.id // accessToken 的 id
}
结果为:{"id":"5cb53c1e36b1898e4432659e","updatedAt":"2019-04-16T02:21:18.170Z","challenges":[],"username":"test","status":null,"email":null,"realm":null,"createdAt":"2019-04-16T02:21:18.170Z","credentials":[],"verificationToken":null,"emailVerified":null,"mobile":null}
三、特定用户拥有该选项(两个选项都不勾取,然后在下面的框中添加指定用户)
1、当不添加用户时
这样登录用户也无法获取自己的信息
api.ajax({
url: 'https://d.apicloud.com/mcm/api/user/'+ userInfo.userId,
method: 'get',
headers: {
"X-APICloud-AppId": appId,
"X-APICloud-AppKey": appKey,
"Authorization": userInfo.id // accessToken 的 id
}
输出结果为:{"statusCode":401,"body":{"error":{"statusCode":401,"message":"Access Denied","status":401,"name":"Error"}},"msg":"{\n \"error\": {\n \"name\": \"Error\",\n \"status\": 401,\n \"message\": \"Access Denied\",\n \"statusCode\": 401\n }\n}","code":2}
拒绝访问
2、添加指定用户admin
这样 admin 用户就能获取所有成员的信息
登录admin 获取了用户 test 的信息
role(角色)部分还有待研究
慢慢学习,慢慢摸索,好记性不如烂笔头!
发现错误,欢迎纠正 0.0