跳到主要内容

HTTP 访问鉴权

HTTP 访问支持鉴定云开发的用户登录凭证,开发者在开启鉴权之后,可以在 HTTP 头部中加入 x-cloudbase-credentials: <登录凭证> 的方式调用云函数。

开启 HTTP 访问鉴权#

在云开发控制台的 HTTP 访问服务管理页面,左侧的路径列表中,可以为各条路径启动或关闭鉴权:

注意

开启访问鉴权之后,没有鉴权信息,或者鉴权信息非法的请求,都会请求失败。

使用 SDK 获取 HTTP 鉴权头部#

以 Web 端 SDK 为例,使用云开发支持的登录方式登录后,可以使用 Auth.getAuthHeader() 获取鉴权头部:

const cloudbase = require("@cloudbase/js-sdk");const app = cloudbase.init({  env: "xxxx"});
/**    执行登录流程,此处省略……*/
const authHeader = cloudbase.auth().getAuthHeader();// { 'x-cloudbase-credentials': '<credentials>' }

在请求中加入鉴权头部#

我们使用 axios 向 HTTP 服务的 URL 发起一个 HTTP 请求,其中加入鉴权头部:

const axios = require("axios");const cloudbase = require("@cloudbase/js-sdk");const app = cloudbase.init({  env: "xxxx"});
/**    执行登录流程,此处省略……*/
const authHeader = cloudbase.auth().getAuthHeader();
axios({  method: "post",  url: "https://env-id.service.tcloudbase.com/xxxx",  data: {    /* ... */  },  headers: {    ...authHeader  }}).then((res) => {  //...});

HTTP 请求示例:

POST /aaa/bbb HTTP/1.1Host: env-id.service.tcloudbase.comX-Cloudbase-Credentials: <credentials><其它头部>: <...>
<传输体...>