APICloud 云数据库中数据表的权限说明(一)

该文主要是以user 表的 get 为例

数据表有三种权限选择:1、所有用户都有该权限;2、仅登录用户拥有该权限;3、指定特定用户拥有该权限

APICloud 云数据库中数据表的权限说明(一)_第1张图片

首先在user表中创建了两条数据:用户 admin 和用户 test,用 admin 登录后去测试获取用户信息

APICloud 云数据库中数据表的权限说明(一)_第2张图片

一、仅登录仅登录用户拥有该权限

 

意味着只有当用户登录后才能 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} APICloud 云数据库中数据表的权限说明(一)_第3张图片

2、获取其他用户的信息(拒绝访问)

APICloud 云数据库中数据表的权限说明(一)_第4张图片

用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} 

被拒绝访问了

APICloud 云数据库中数据表的权限说明(一)_第5张图片

二、所有用户都拥有该权限

将 user 表的权限设置为所有用户都拥有该权限时,就可以获取其他用户信息了

APICloud 云数据库中数据表的权限说明(一)_第6张图片

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}

APICloud 云数据库中数据表的权限说明(一)_第7张图片

三、特定用户拥有该选项(两个选项都不勾取,然后在下面的框中添加指定用户)

1、当不添加用户时

APICloud 云数据库中数据表的权限说明(一)_第8张图片

这样登录用户也无法获取自己的信息

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}

拒绝访问

APICloud 云数据库中数据表的权限说明(一)_第9张图片

2、添加指定用户admin

APICloud 云数据库中数据表的权限说明(一)_第10张图片

这样 admin 用户就能获取所有成员的信息

APICloud 云数据库中数据表的权限说明(一)_第11张图片

登录admin 获取了用户 test 的信息

 

role(角色)部分还有待研究

慢慢学习,慢慢摸索,好记性不如烂笔头!

发现错误,欢迎纠正 0.0

你可能感兴趣的:(APICloud,学习)