https://github.com/VBA-tools/VBA-LocalStorage
Local storage for VBA
https://github.com/VBA-tools/VBA-LocalStorage
Last synced: 4 months ago
JSON representation
Local storage for VBA
- Host: GitHub
- URL: https://github.com/VBA-tools/VBA-LocalStorage
- Owner: VBA-tools
- License: mit
- Created: 2017-03-30T19:54:37.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-31T01:34:21.000Z (about 8 years ago)
- Last Synced: 2024-11-07T23:22:49.358Z (5 months ago)
- Language: Visual Basic
- Size: 65.4 KB
- Stars: 46
- Watchers: 13
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - VBA-tools/VBA-LocalStorage - Local storage for VBA (Visual Basic)
README
# VBA-LocalStorage
_Note: Under development_
Store key-value information for Workbooks/Documents locally with moderate security.
This can be useful for cases such as user-specific preferences, application state, and, in trusted environments, authentication information.Stored values are encrypted with either an `ApplicationKey`, which is stored in VBA with the workbook, or a user-supplied password:
- `ApplicationKey`: the values are secure while at-rest when separate from the workbook, but if someone gains access to the computer and the workbook is unprotected, they will be able to access the stored values. This is a reasonable baseline for security and generally matches the approach used with browsers.
- If additional security is desired, the user can elect to use a user-supplied password for encryption which would secure the values at-rest and would require entering the password to decrypt the values even with access to the computer and workbook.## Overview
User Flow:
1. __Request Local Storage__ On first access, a dialog is displayed requesting usage of local storage for the given workbook/document. If the user rejects local storage, this preference is saved and in-memory storage will be used. If the user accepts, encryption with `ApplicationKey` will be used. Finally, the user has an option to accept with user-supplied password
2. On workbook/document re-open, if encrypted with user-supplied password, display __Unlock Local Storage__ user form, otherwise decrypts automatically## Usage
Follows browser's `localStorage` approach with `GetItem`, `SetItem`, `RemoveItem`, and `Clear`
```vb
Private Token As StringSub Login()
Token = LocalStorage.GetItem("token")If Token = "" Then
Token = "..."
LocalStorage.SetItem "token", Token
End If
End SubSub Logout()
Token = ""
LocalStorage.RemoveItem "token"
End SubSub Cleanup()
LocalStorage.Clear
End Sub
```## Installation
1. Import `LocalStorage.bas`, `RequestLocalStorage.frm`, and `UnlockLocalStorage.frm`
2. Set unique and strong value for `ApplicationKey` constant in `LocalStorage.bas`