CupThread React Native & Expo SDK - v0.1.0
    Preparing search index...

    Class UserTokenStore

    Manages device-level persistent anonymous user tokens for CupThread SDK interactions.

    Anonymous tokens allow users to submit feedback, upvote roadmap features, and participate in discussions without requiring an upfront sign-in. The token is generated as an RFC 4122 v4 UUID and can be stored across app restarts using custom storage adapters (e.g. AsyncStorage / SecureStore).

    import { UserTokenStore } from '@cupthread/react-native';

    // 1. Synchronous access to cached token
    const token = UserTokenStore.shared.token;

    // 2. Async retrieval with persistence lookup
    const persistentToken = await UserTokenStore.shared.getToken();

    // 3. Reset token (e.g. on user logout)
    const freshToken = await UserTokenStore.shared.resetToken();
    Index
    • get token(): string

      Synchronously returns the currently cached user token. If not already initialized, generates and caches a new in-memory UUID.

      Returns string

      When using an asynchronous storage adapter, prefer awaiting getToken to ensure any pre-existing token in storage is properly recovered before use.

      const userToken = UserTokenStore.shared.token;
      
    • Clears all recorded seen changelog entries from memory and storage.

      Returns Promise<void>

      await UserTokenStore.shared.clearSeenChangelogs();
      
    • Asynchronously retrieves the user token, prioritizing recovery of existing tokens from storage.

      Returns Promise<string>

      A promise resolving to the user token string.

      If storage already contains a token, it is restored into memory and returned. A new UUID is generated and persisted only when storage is verified to be empty.

      const token = await UserTokenStore.shared.getToken();
      
    • Checks whether a changelog release version or entry ID has already been marked as seen.

      Parameters

      • versionOrId: string

        Changelog version label (e.g. '1.2.0') or entry ID.

      Returns Promise<boolean>

      Promise resolving to true if seen, false otherwise.

      const hasSeen = await UserTokenStore.shared.hasSeenChangelog('1.2.0');
      
    • Marks a changelog release version or entry ID as seen and persists it.

      Parameters

      • versionOrId: string

        Changelog version label (e.g. '1.2.0') or entry ID.

      Returns Promise<void>

      await UserTokenStore.shared.markChangelogSeen('1.2.0');
      
    • Resets the active user token and generates a brand new UUID in memory and storage.

      Returns Promise<string>

      The newly generated user token.

      const newToken = await UserTokenStore.shared.resetToken();
      console.log(`New session token: ${newToken}`);
    • Overrides the current user token with an explicit identifier (e.g. from your auth service).

      Parameters

      • token: string

        Custom user identifier or token string.

      Returns Promise<void>

      await UserTokenStore.shared.setToken(user.id);