身份认证
云开发 HTTP 访问服务支持开启身份认证功能,确保只有经过身份验证的合法用户才能访问您的服务。本文档将指导您如何开启身份认证并在不同平台的请求中正确使用鉴权信息。
什么是 HTTP 身份认证
HTTP 身份认证是一种安全机制,用于验证访问 HTTP 服务的用户身份。通过开启此功能,您可以:
- 保护您的 HTTP 服务不被未授权用户访问
- 跟踪和记录用户访问行为
- 根据用户身份提供个性化的服务内容
开启 HTTP 身份认证
- 登录云开发控制台,进入 HTTP 访问服务管理页面
- 在域名关联资源列表中,找到需要身份认证的路径
- 点击对应路径的「身份认证」开关,启用鉴权功能
重要提示
开启身份认证后:
- 浏览器访问:系统会自动跳转到登录页,用户登录成功后会自动跳转回原页面
- API 调用:未携带有效鉴权信息的请求会返回
401 Unauthorized
错误 - 小程序/移动应用:需要通过 SDK 获取并携带鉴权信息
在 HTTP 请求中使用鉴权信息
使用 axios 发起请求
const axios = require("axios");
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();
// 发起带鉴权的 HTTP 请求
axios({
url: "自定义路径",
method: "post",
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
data: {
name: "云开发",
action: "测试鉴权"
}
})
.then(response => {
console.log("请求成功:", response.data);
})
.catch(error => {
console.error("请求失败:", error);
});
使用 fetch API 发起请求
// 获取鉴权Token
const {
accessToken
} = await auth.getAccessToken();
// 使用fetch发起请求
fetch("自定义路径", {
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));
HTTP 请求示例
POST /api/function HTTP/1.1
Host: 您的环境ID.service.tcloudbase.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Content-Type: application/json
{
"name": "云开发",
"action": "测试鉴权"
}