1

我正在使用 IBM Cloud Functions (OpenWhisk) 并尝试通过 OAuth 以 Facebook 作为提供者来设置身份验证。我已经使用 Facebook 设置了一个应用程序,我能够成功连接并获取我的令牌,并且我能够通过获取基本个人资料信息(姓名和用户 ID)来验证这一点。

当我在 IBM Cloud Functions API 中启用 OAuth 时,我的问题就开始了。我从通话中得到了一个 HTTP 代码 500,但关于实际问题的信息很少。

{"code":500, "message":"Oops. Something went wrong. Check your URI and try again."}

仪表板中唯一说明的是:

您可以通过 OAuth 2.0 标准控制对 API 的访问。首先要求最终用户通过 IBM Cloud App ID、Facebook、GitHub 或 Google 登录。然后在每个 API 请求的 Authorization 标头中包含相应的 OAuth 令牌。令牌的真实性将通过指定的令牌提供者进行验证。如果令牌无效,请求将被拒绝并返回响应码 401。

有了这些信息,我知道我需要使用 Authorization 标头传递令牌。我最好的猜测是在验证令牌时调用在某处失败。

我正在使用 Vue 和 Vue-axios 来执行 API 调用。我当前的通话如下所示:

  this.$http.get(API_URL+"?user_id="+localStorage.user_id,{headers :{'authorization':localStorage.token}}).then((response) => {
        console.log(response);
    });

我尝试在令牌前面添加不记名/不记名或令牌/令牌(我读过的一些帖子表明您应该这样做),但这对响应没有影响。

如果我从 Cloud Functions 端禁用 OAuth 身份验证,则上面的代码可以正常工作并正确检索数据(带或不带标头选项)。

从 Chrome 开发工具看来,令牌已正确添加到请求中,因为请求标头具有带有令牌的 Authorization 标头。

我对 OAuth 或 IBM Cloud Functions 不太熟悉,因此问题可能很容易解决。但是,我无法找到清楚地向我展示我应该如何设置它的文档。我也找不到任何日志或有关此处实际失败的更多信息。我在这里遗漏了一些明显的东西吗?

凯蒂尔

4

0 回答 0