【问题标题】:Error 401 on POST Request in LoopbackLoopback 中的 POST 请求出现错误 401
【发布时间】:2016-08-09 00:50:43
【问题描述】:

早安,伙计们。我还是 Loopback 的新手,感觉我错过了一些东西,但不知道在哪里找到什么,所以建议会很有帮助。

我有一个应用程序。我正在使用标准 ACL 的本地身份验证。

我只有少数方法只为 $owner 开放,也很少为 $authenticated 开放。我在应用程序中使用几个 POST 请求来检索数据,每次我收到 401 错误。如果使用 GET 请求,我所要做的就是在 url 中包含一个访问令牌 ID,例如 url?access_token=jjkdfsjjkj334。

我感觉 POST 请求有某种类似的技巧。

任何帮助将不胜感激。

【问题讨论】:

    标签: authentication acl loopbackjs loopback


    【解决方案1】:

    对于发布请求,将 access_token 作为相应发布调用中的“授权”标头传递。

    request({url: url, json: true, headers: {'Authorization': 'access-token-value'}}, function (err, res, responseJson) {
    
    console.log(responseJson);
    
    });
    

    您还可以指定其他标头,例如 Accept-type 等。

    【讨论】:

    • 如果你读完这篇文章后仍然有问题。我的原因是发送了Authentication 标头而不是Authorization 标头。使用Authorization 标头。
    【解决方案2】:

    如果您有一个名为 Test 且具有以下 ACL 的模型:

    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    },
    {
      "principalType": "ROLE",
      "principalId": "$authenticated",
      "permission": "ALLOW",
      "property": "create"
    }
    

    您应该能够发出以下 POST 请求:

    curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "{}" "http://localhost:3000/api/Tests?access_token=cor7DDfUKoFSI6DzgCezQzoKFOuSmpLYzSF85xA8QXePkbFAGDKjjp7QwaVlP11B"
    

    我总是喜欢使用组件资源管理器来测试哪些有效,哪些无效。我的猜测是您的 ACL 中的某些设置不正确。

    【讨论】:

    • 还有一个例子here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2019-07-17
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    相关资源
    最近更新 更多