Password protected objects or classes for JS.
Please use npm to install.
npm i passclass
To use in the browser, please use browserify or webpack to include and build passclass. No standalone browser library is currently implemented, but can be if requested.
const passclass = require('passclass')
const obj = Object.assign({}, passclass)
obj.protectedFunction = (pass) {
this.checkClassPass(pass)
// if no error was thrown, continue with your function
return true
}
// if no password is set, function is not protected
obj.protectedFunction() // true
// set initial password
obj.setClassPass(undefined, 'newpass')
obj.protectedFunction('newpass') // true
obj.protectedFunction('badpass') // throws Error
To use as an es6 class mixin, first use object-to-class.
const o2c = require('object-to-class')
const PassClass = o2c(passclass, 'PassClass')
class MyProtectedClass extends PassClass {}
let mine = new MyProtectedClass()
mine instanceof PassClass // true
// don't forget to set your password, constructor doesn't do this
mine.setClassPassword(undefined, 'initialize')