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

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

数据表有三种权限选择: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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值