yaus
v0.0.19
Published
yet another user system
Downloads
43
Maintainers
Readme
yaus
yaus - yet another user system.
status
- pre-release
overview
yaus (yet another user system) is a library to create stateless, passwordless login and user management systems for node js and browser apps.
Useful if you want to spin up a quick stateless authentication server protecting an offline enabled PWA or static CDN website. The server doesn't use a database and can easily work as a lambda, docker container or any cloud VPS. Logging and access is secured using email as the side channel.
features
- browser client suitable for static websites served via CDNs (content delivery networks)
- stateless server or cloud function that does not use a DB
- standalone authentication function for node js, and cloud functions
crypto and authentication details
developer api
browser client
The browser client is designed to work via static html or CDN delivered websites.
var Client = require('yaus/client')
var client = Client({
endpoint: 'http://localhost:3000'
})
// this function detects the token via the emailed magic link
client.user(function (e, user) {
if (e) return login_page()
else console.log('logged in as ', user)
})
client.login('<demo@demo.com>', function (e, emailSent) {
console.log('was an email sent? ', emailSent)
})
standalone node js code, lambda or cloud function
You may also want to allow a server or lambda to authorize a magic link.
var fs = require('fs')
var Yaus = require('yaus/standalone')
var keys = JSON.parse(fs.readFileSync('server_keys.json').toString())
var yaus = Yaus({ keys: keys })
yaus.authorize('<magic_link_token>', function (e, result) {
console.log(e, result)
})
server cli
configuration file
{
session_length: 30 * 1000,
redirect_uri: 'http://localhost:9000',
allow_list: [ 'mr-t@a-team.com' ],
email: {
provider: 'sendgrid', // sendgrid, mailgun, custom
logging: false,
logging_email: '',
api_key: '',
domain: ''
},
port: 3000
}
launch yaus server
yaus --config ./config.js
install pre release package
npm i yaus -g
npm i yaus --save