Sessions
Restore logged-in users, sign out, and manage access tokens.
备注
userInstance — ESPRMUser from User sign in.
What This Module Does ?
Covers session lifecycle: read the current user, log out, clean up resources, and refresh or clear tokens stored by the SDK.
Use getLoggedInUser() on app start before showing the login screen. Use logout when the user signs out.
Expected outcome: Valid session restored automatically when tokens exist; clean teardown on logout.
Common Workflows
Get logged-in user
const authInstance = ESPRMBase.getAuthInstance();
const userInstance = await authInstance.getLoggedInUser();
if (userInstance) {
// Continue to home / devices
} else {
// Show login
}
Refreshes an expired access token when a refresh token is available.
Log out
await userInstance.logout(); // current session only
await userInstance.logout(true); // all sessions
Clean up resources
await userInstance.cleanUpResources();
Token helpers (static)
const accessToken = await ESPRMUser.getAccessToken();
const newAccessToken = await ESPRMUser.extendSession(refreshToken);
ESPRMUser.clearAllTokens();
Error Handling
try {
const user = await authInstance.getLoggedInUser();
} catch (error) {
console.error("Session restore failed:", error);
}
If restore fails, clear tokens and send the user to login.
Advanced Concepts
getLoggedInUser() returns null when no valid access or refresh token exists. getAccessToken() attempts refresh before failing—useful for custom HTTP clients that need a bearer token.
Best Practices
- Check session before routing on cold start
- Delete push endpoints on logout when you registered them at login
- Call
cleanUpResourceswhen tearing down user-scoped listeners or caches - Avoid logging tokens in production builds