会话
恢复已登录用户、登出,并管理访问令牌。
本模块的功能
覆盖会话生命周期:读取当前用户、登出、清理资源,以及刷新或清除 SDK 存储的令牌。
应用启动时先调用 getLoggedInUser(),再决定是否显示登录页。用户退出时调用 logout。
预期结果:存在令牌时自动恢复有效会话;登出时干净地拆除会话。
常见工作流
获取已登录用户
const authInstance = ESPRMBase.getAuthInstance();
const userInstance = await authInstance.getLoggedInUser();
if (userInstance) {
// Continue to home / devices
} else {
// Show login
}
当刷新令牌可用时,会刷新已过期的访问令牌。
登出
await userInstance.logout(); // current session only
await userInstance.logout(true); // all sessions
清理资源
await userInstance.cleanUpResources();
令牌辅助方法(静态)
const accessToken = await ESPRMUser.getAccessToken();
const newAccessToken = await ESPRMUser.extendSession(refreshToken);
ESPRMUser.clearAllTokens();
错误处理
try {
const user = await authInstance.getLoggedInUser();
} catch (error) {
console.error("Session restore failed:", error);
}
若恢复失败,请清除令牌并引导用户重新登录。
进阶概念
不存在有效的访问令牌或刷新令牌时,getLoggedInUser() 返回 null。getAccessToken() 会先尝试刷新再失败,便于需要 bearer 令牌的自定义 HTTP 客户端使用。
最佳实践
- 冷启动时先检查会话再路由
- 登出时删除推送端点:若登录时曾注册过
- 拆除用户级监听或缓存时调用
cleanUpResources - 生产构建中不要打印令牌

