# 云接入鉴权

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

# 开启云接入鉴权

登录 云开发控制台,依次选择对应的环境 ->【云函数】->【HTTP触发】,打开【访问鉴权】选项。

注意

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

# 使用 SDK 获取 HTTP 鉴权头部

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

const tcb = require('tcb-js-sdk');
const app = tcb.init({
  env: "xxxx"
});

/**
    执行登录流程,此处省略……
*/

const authHeader = tcb.auth().getAuthHeader()
// { 'x-cloudbase-credentials': '<credentials>' }

# 在请求中加入鉴权头部

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

const axios = require('axios')
const tcb = require('tcb-js-sdk');
const app = tcb.init({
  env: "xxxx"
});

/**
    执行登录流程,此处省略……
*/

const authHeader = tcb.auth().getAuthHeader()

axios({
    method: 'post',
    url: 'https://env-id.service.tcloudbase.com/xxxx',
    data: { /* ... */ },
    headers: {
        ...authHeader
    }
}).then(res => {
    //...
})

HTTP 请求示例:

POST /aaa/bbb HTTP/1.1
Host: env-id.service.tcloudbase.com
X-Cloudbase-Credentials: <credentials>
<其它头部>: <...>

<传输体...>