Skip to content

Secure Storage

SecureStorage provides encrypted local secure storage for sensitive data such as authentication tokens and keys. Data is encrypted before being stored on the device. Accessed via Safew.WebApp.SecureStorage. Bot API 8.0+

Limits

ItemLimit
Maximum number of entries10
Maximum key length128 characters
Maximum value length2048 characters
Key charactersA-Z, a-z, 0-9, _, -

Methods

setItem

javascript
Safew.WebApp.SecureStorage.setItem(key, value, callback)

Securely stores a key-value pair.

ParameterTypeRequiredDescription
keyStringYesKey name, 1-128 characters
valueStringYesValue, 0-2048 characters
callbackFunctionNoCallback with (error, success) parameters
javascript
Safew.WebApp.SecureStorage.setItem('auth_token', 'eyJhbGciOi...', (error, success) => {
  if (error) {
    console.error('Secure storage failed:', error);
  } else {
    console.log('Token stored securely');
  }
});

getItem

javascript
Safew.WebApp.SecureStorage.getItem(key, callback)

Reads the value of a specified key from secure storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionYesCallback with (error, value) parameters
javascript
Safew.WebApp.SecureStorage.getItem('auth_token', (error, value) => {
  if (error) {
    console.error('Read failed:', error);
  } else if (value) {
    // Use token
    apiClient.setToken(value);
  }
});

removeItem

javascript
Safew.WebApp.SecureStorage.removeItem(key, callback)

Removes a specified key from secure storage.

ParameterTypeRequiredDescription
keyStringYesKey name
callbackFunctionNoCallback with (error, success) parameters

clear

javascript
Safew.WebApp.SecureStorage.clear(callback)

Clears all data in secure storage.

ParameterTypeRequiredDescription
callbackFunctionNoCallback with (error, success) parameters

Storage Comparison

FeatureCloudStorageDeviceStorageSecureStorage
LocationCloudLocalLocal (encrypted)
Data syncCross-deviceLocal onlyLocal only
Capacity1024 keys × 4KB5 MB10 keys × 2KB
SecurityStandardStandardEncrypted
Use casesUser preferencesCache dataSensitive data
Min versionBot API 8.0+Bot API 8.0+

Usage Example

javascript
const secureStorage = Safew.WebApp.SecureStorage;

// Securely store login credentials
function saveCredentials(token, refreshToken) {
  secureStorage.setItem('access_token', token, (err) => {
    if (!err) {
      secureStorage.setItem('refresh_token', refreshToken);
    }
  });
}

// Load login credentials
function loadCredentials(callback) {
  secureStorage.getItem('access_token', (err, token) => {
    if (err || !token) {
      callback(null);
      return;
    }
    secureStorage.getItem('refresh_token', (err, refreshToken) => {
      callback({ token, refreshToken });
    });
  });
}

// Clear credentials on logout
function logout() {
  secureStorage.clear((err) => {
    if (!err) {
      console.log('Credentials cleared');
      redirectToLogin();
    }
  });
}