帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
14
帖子
0
勋章
36
Y币

[FAQ] get方法请求user返回401错误,是什么原因?

[复制链接]
发表于 2015-4-2 16:00:05
本帖最后由 技术支持-F 于 2016-2-18 22:04 编辑

请求地址是这样的    /mcm/api/user/551cb72a3b7d670936260dbf    同样的请求用在其他自己创建的类上没有问题,但用在user上就返回401错误了,请问是权限问题吗?用api调试是可以返回结果的
7
帖子
0
勋章
1594
Y币
是权限问题

你可以在user的更多里权限设置里边进行设置

现在get的权限是只有用户自己才能获取自己的信息,就是说需要登录
14
帖子
0
勋章
36
Y币
数据云咨询-北 发表于 2015-4-2 17:05
是权限问题

你可以在user的更多里权限设置里边进行设置

如果我已经登陆了,如何让服务器知道我有这个权限呢?
14
帖子
0
勋章
36
Y币
树熊 发表于 2015-4-4 09:43
如果我已经登陆了,如何让服务器知道我有这个权限呢?

在头信息加上token就可以了,@北,还有一个问题,就是调用logout请求时返回400错误,这次是已经加上token了~
7
帖子
0
勋章
1594
Y币
树熊 发表于 2015-4-4 12:09
在头信息加上token就可以了,@北,还有一个问题,就是调用logout请求时返回400错误,这次是已经加上token ...

除了400还有什么其他提示?
1
帖子
0
勋章
8
Y币
参照下面的做法,获取用户信息,总是401错误,目前只能修改user表的权限。
有人可以指点一下不?谢谢!


======================================================================

获取用户

默认owner权限

您可以发送一个 GET 请求到 URL 以获取用户信息,示例如下:

curl -X GET \
    -H "X-APICloud-AppId: {{your_app_id}}" \
    -H "X-APICloud-AppKey: {{your_app_key}}" \
    -H "authorization":{{login 返回的id}}" \
    -H "Content-Type: application/json" \
    https://d.apicloud.com/mcm/api/user/5437a1a9e41cbf4a52d7c9d6
========================================================================
7
帖子
0
勋章
1594
Y币
北辰 发表于 2015-4-19 21:50
参照下面的做法,获取用户信息,总是401错误,目前只能修改user表的权限。
有人可以指点一下不?谢谢!

  -H "authorization":{{login 返回的id}}" \

这个你传了吗,需要登录
1
帖子
0
勋章
8
Y币
本帖最后由 北辰 于 2015-4-20 12:11 编辑
数据云咨询-北 发表于 2015-4-20 11:05
-H "authorization":{{login 返回的id}}" \

这个你传了吗,需要登录

谢谢您的及时回复。

这个加了。我是在玩转晋城的代码基础上改的。
在common.js ajaxRequest  函数中加一条token的内容:
========================================
headers: {
            "Content-type": "application/json;charset=UTF-8",
            "X-APICloud-AppId": appId,
            "X-APICloud-AppKey": appKey,
          //加入token验证
            "authorization": $api.getStorage('token')
        },
=========================================
token字段,是在login成功时,返回给终端的。我用alert输出,检查了一下,和云端数据表中的字段值是一样的。
BTW,目前用户是可以注册和登录的。带authorization字段,获取用户表中的本用户信息,总是返回401.
7
帖子
0
勋章
1594
Y币
北辰 发表于 2015-4-20 12:08
谢谢您的及时回复。

这个加了。我是在玩转晋城的代码基础上改的。

你获取的是你当前用户的信息吗?不是那返回401是对的。是的话,那不会返回401


不想有这个限制,可以去权限控制里边对get权限做更改,修改成everyone即可
1
帖子
0
勋章
8
Y币
本帖最后由 北辰 于 2015-4-21 00:14 编辑
数据云咨询-北 发表于 2015-4-20 14:20
你获取的是你当前用户的信息吗?不是那返回401是对的。是的话,那不会返回401

谢谢!
不好意思,是我的代码写错了,在调用ajaxRequest是我把bodyParam设成了空串,这个是不行的。把ajaxRequest重写,去掉bodyParam的部分就可以了。
===========================================
function ajaxRequestUserInfo(url, method, bodyParam, callBack) {
    var common_url = 'https://d.apicloud.com/mcm/api';
    var appId = 'A6973666436346';
    var key = '64C65EDE-287E-1229-A9D2-D2FD8D38D9E4';
    var now = Date.now();
    var appKey = SHA1(appId + "UZ" + key + "UZ" + now) + "." + now;
    //alert(common_url+url);
    api.ajax({
        url: common_url + url,
        method: method,
        cache: false,
        timeout: 20,
        headers: {
            "X-APICloud-AppId": appId,
            "X-APICloud-AppKey": appKey,
            "authorization": $api.getStorage('token'),
            "Content-type": "application/json"
        },

       //去掉下面3行就好了
        //data: {
        //    body: bodyParam
        //}

    }, function (ret, err) {
        callBack(ret, err);
    });
}

===========================================
12下一页
您需要登录后才可以回帖 登录

本版积分规则