CloudBase 匿名登录的所有逻辑均可由客户端代码主动执行,无需用户手动操作。在匿名登录状态下可正常的调用 CloudBase 的资源,开发者同时可以配合安全规则针对匿名用户制定对应的访问限制。
开通流程
步骤1:开启匿名登录
步骤2:添加安全域名(可选)
登录流程
import cloudbase from '@cloudbase/js-sdk';// 初始化 SDKconst app = cloudbase.init({env: 'xxxx-yyy'; // 填入您的环境 ID});const auth = app.auth();async function login(){// 调用匿名登录接口await auth.anonymousAuthProvider().signIn();// 匿名登录成功后,登录状态isAnonymous字段值为trueconst loginState = await auth.getLoginState();console.log(loginState.isAnonymousAuth); // true}login();
数量限制
每个 CloudBase 环境的匿名用户数量不超过 1000 万个。
安全规则
云数据库匿名用户不可读写。
{"read": "auth.loginType != 'ANONYMOUS'","write": "auth.loginType != 'ANONYMOUS'"}
云存储所有用户可读,匿名用户不可写。
{"read": "auth != null","write": "auth.loginType != 'ANONYMOUS'"}
说明
转化为正式用户
如果用户在匿名状态下产生了一些私有数据(例如游戏中获取了个人成就和装备),想将此匿名账号转化为正式账号长久持有。
针对这种需求,您可以 将匿名账号与任意一种登录方式关联,关联后,便可以永久使用该种登录方式登录 CloudBase,达成匿名账号转正的效果。详情请参见 账户关联。
常见问题
匿名登录与未登录有什么区别?
从 C 端用户的角度来讲:
匿名登录和未登录在使用上没有任何区别,都无需注册。
匿名登录用户有独立的用户标识,在同设备有效期内,用户可以产生独立的私有数据。
与未登录相比,匿名登录可以转为正式用户,匿名登录期间的私有数据会自动继承到正式用户名下。
从应用开发者的角度来讲:
未登录模式是纯粹的无登录态访问,该模式下的访问都不会进入用户的追踪统计。
未登录的用户默认权限下无法使用任何 CloudBase 的服务和资源,而匿名登录在基础权限下也可以进行对应的资源读写,也可以结合安全规则实现更细粒度的管控。
匿名登录的用户达到上限后怎么办?
CloudBase 限制每个环境的匿名用户数量不超过 1000 万个,如果达到上限可以在 CloudBase 控制台 的“用户管理”页面查看匿名用户的活跃情况,针对长期不登录的匿名用户可以考虑将其删除以释放空间。
匿名用户是否会过期?
CloudBase 对匿名用户的有效期限策略是:每个设备同时只存在一个匿名用户,并且此用户永不过期。当然,如果用户手动清除了设备或浏览器的本地数据,那么匿名用户的数据便会被同步清除,再次调用 CloudBase 匿名登录 API 会产生一个新的匿名用户。