Giter VIP home page Giter VIP logo

vba-localstorage's Introduction

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

Private Token As String

Sub Login()
  Token = LocalStorage.GetItem("token")

  If Token = "" Then
    Token = "..."
    LocalStorage.SetItem "token", Token
  End If
End Sub

Sub Logout()
  Token = ""
  LocalStorage.RemoveItem "token"
End Sub

Sub 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

vba-localstorage's People

Contributors

timhall avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.