跳到主要内容

身份认证

HTTP 身份认证是一种安全机制,用于验证访问 HTTP 服务的用户身份。通过开启此功能,您可以:

  • 保护您的 HTTP 服务不被未授权用户访问
  • 跟踪和记录用户访问行为
  • 根据用户身份提供个性化的服务内容

开启 HTTP 身份认证

  1. 登录云开发控制台,进入 HTTP 访问服务管理页面
  2. 在域名关联资源列表中,找到需要身份认证的路径
  3. 点击对应路径的「身份认证」开关,启用鉴权功能

HTTP身份认证设置

开启身份认证后的访问行为

开启身份认证后,不同类型的请求会有不同的处理方式:

请求类型行为说明适用场景
浏览器直接访问系统自动跳转到登录页,用户登录成功后自动跳转回原页面用户在浏览器中打开链接
服务端 API 调用未携带有效鉴权信息的请求返回 MISSING_CREDENTIALS 错误码后端服务、脚本调用 API
Web 应用需要通过 Web SDK 获取 accessToken 并在请求头中携带前端 Web 应用调用 API
重要提示

浏览器访问服务端调用是两种不同的场景:

  • 浏览器访问:用户在地址栏输入 URL 或点击链接,系统会自动处理登录跳转
  • 服务端调用:代码中通过 HTTP 客户端(如 axiosfetch)发起请求,必须在请求头中携带有效的 Authorization 参数

在 HTTP 请求中使用鉴权信息

前提条件

在使用以下示例前,请确保:

  1. 已在云开发控制台开启身份认证功能
  2. 已配置用户登录方式(如账号密码登录、手机号登录等)
  3. 用户已完成登录并获取到有效的 accessToken

令牌类型

云开发支持多种令牌类型用于身份认证:

令牌类型适用环境用户权限有效期获取方式
Access Token客户端/服务端登录用户权限默认 2 小时通过 Web SDK 登录后获取
API Key服务端管理员权限长期有效云开发控制台 - API Key 管理页
Publishable Key客户端/服务端匿名用户权限长期有效云开发控制台 - API Key 管理页
重要提示
  • API Key 拥有管理员权限,严禁在客户端使用,仅用于服务端环境
  • Publishable Key 可以安全地暴露在浏览器中,用于请求公开访问的资源
  • 所有令牌都是身份认证的关键凭证,请妥善保管
const cloudbase = require("@cloudbase/js-sdk");

// 初始化 SDK
const app = cloudbase.init({
env: "您的环境ID" // 替换为您的云开发环境ID
});
const auth = app.auth();

// 用户登录(示例使用账号密码登录)
await auth.signIn({
username: "your username",
password: "your password"
});

// 获取 token
const { accessToken } = await auth.getAccessToken();

// 使用 fetch 发起带鉴权的 HTTP 请求
fetch('https://您的环境ID.service.tcloudbase.com/api/function', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: "云开发",
action: "测试鉴权"
})
})
.then(response => response.json())
.then(data => {
console.log("请求成功:", data);
})
.catch(error => {
console.error("请求失败:", error);
});

相关文档