yaus

0.0.19 • Public • Published

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

example app

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.19
    1
    • latest

Version History

Package Sidebar

Install

npm i yaus

Weekly Downloads

1

Version

0.0.19

License

MIT

Unpacked Size

6.24 MB

Total Files

24

Last publish

Collaborators

  • yaus