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

    Install

    npm i yaus

    DownloadsWeekly Downloads

    45

    Version

    0.0.19

    License

    MIT

    Unpacked Size

    6.24 MB

    Total Files

    24

    Last publish

    Collaborators

    • yaus