未登录
CloudBase 允许客户端在未登录的情况下调用 CloudBase 的资源,开发者可以配合安全规则限制未登录对资源的访问权限。
开通流程
第 1 步:开启未登录
登录 云开发 CloudBase 控制台,在 登录授权 中,将未登录一栏打开或关闭。
第 2 步:添加安全域名(可选)
Web 应用需要将域名添加到 CloudBase 控制台的 Web 安全域名列表中,否则将被识别为非法来源。
使用流程
第 1 步:设置自定义安全规则,放通未登录访问
您需要使用自定义安全规则,来放通未登录模式下的资源访问。
注意
基于安全性的考虑,基础的四种权限设置下,均不允许未登录进行访问。
例如,您可以这样设置云数据库的权限:
{
"read": "doc._openid==auth.openid || auth == null"
}
在原始私有读 doc._openid==auth.openid
的基础上,允许了所有未登录用户进行读资源。详细可查看 编写安全规则。
第 2 步:初始化 SDK 发起调用
- Web
import cloudbase from '@cloudbase/js-sdk';
const app = cloudbase.init({
env: 'xxxx-yyy';
});
app.auth(); // 需初始化,但无需传入任何参数
SDK 初始化完成后可以正常发起云开发资源的调用。
注意
- tcb-js-sdk 在 1.9.0 版本(包含)之后支持在未登录模式下调用资源,之前的版本必须在登录有效期内进行资源调用;
- 在未登录模式下写入的数据(云数据库、云存储),都将成为无主数据,即数据上不会自动包含相应的身份标识字段。
常见问题
匿名登录与未登录有什么区别?
从 C 端用户的角度来讲:
- 匿名登录和未登录在上手使用上没有任何区别,都无需注册;
- 未登录场景下无法产生私有数据,数据在所有未登录用户间共享,单个用户没有特征标识;
- 与匿名登录相比,未登录无法转为注册登录,未登录期间生成的数据无法自动的过渡到注册登录的用户上。
从应用开发者的角度来讲:
已经开启未登录开关但访问资源仍报权限错误
因为未登录访问是一种低安全,公开的访问方式,为保证开发者云资源的安全性,系统限制需要同时开启未登录开关,以及显式地通过安全规则放通未登录模式的资源访问,未登录模式下才可以真正访问云资源,两步相互独立,又缺一不可。