You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测@platform下at sign账号是否处于已登录认证状态?

@platform 判断用户登录状态的实现方案

你当前通过密钥链查询atSign是否为null的方案,只能验证本地是否留存过对应账号的密钥,无法校验该账号是否已经完成当前会话的身份认证,确实会出现误判情况。

最简实现(等价于Firebase Auth的判断逻辑)

@platform 提供了开箱即用的登录状态判断能力,直接读取AtClient实例中已激活且完成认证的账号即可,非null即为已登录:

final activeAtSign = AtClientManager.getInstance().atClient.getCurrentAtSign();
final loggedIn = activeAtSign != null;

该返回值只有在账号完成PKAM身份认证、可以正常发起@protocol请求时才会返回对应atSign,哪怕本地留存了账号信息但未完成认证/认证已失效,都会返回null,判断准确性远高于直接查询密钥链。

高严谨度校验方案

如果需要在敏感操作前做二次校验,可以额外验证当前远程连接的认证状态:

final atClient = AtClientManager.getInstance().atClient;
final isConnectionAuthenticated = atClient.getRemoteSecondary()?.isAuthenticated ?? false;
final loggedIn = atClient.getCurrentAtSign() != null && isConnectionAuthenticated;

该方案会额外确认当前客户端和@platform远程节点的连接已经完成认证,不会出现本地状态标记为已登录但实际连接失效的情况。


内容的提问来源于stack exchange,提问作者Code on the Rocks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:36:04