跳到主要内容

会话

恢复已登录用户、登出,并管理访问令牌。

备注

userInstance —— 在用户登录过程中获得的 ESPRMUser 实例。

本模块的功能​

覆盖会话生命周期:读取当前用户、登出、清理资源,以及刷新或清除 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 客户端使用。

最佳实践​

  1. 冷启动时先检查会话再路由
  2. 登出时删除推送端点:若登录时曾注册过
  3. 拆除用户级监听或缓存时调用 cleanUpResources
  4. 生产构建中不要打印令牌

相关资源​

On this page