0xauth

A javascript library for the 0xAuth protocol

Usage no npm install needed!

<script type="module">
  import xauth from 'https://cdn.skypack.dev/0xauth';
</script>

README

0xauth-js

A javascript library for the 0xAuth protocol

ALPHA DEVELOPMENT, NOT READY YET FOR REAL WORLD USES

Implementation of the 0xAuth protocol

Install

Server sidee:

npm i --save 0xauth

Client side:

npm i 0xauth
cp node_modules/0xauth/dist/0xauth.js your/dest/folder/.

Usage

Server side:

const 0xauth = require('0xauth')
const Auth = 0xauth.Auth
const authToken = new 0xauth.AuthToken({...})
...

Client side:

var client = new 0xauth.client()
client.init('trx', tronWeb)
// and/or
client.init('eth', web3)
...

Server API

Auth.getAuthorizationToken(params)

Params:

issuer         The RDNS of the app/service issuing the token
expireAt       (optional) The Linux timestamp at expiration
extraParams    Extra-parametes related with the app

For testing purposes, you can also pass:

createdAt      The Linux timestamp of creation
randomString   A 4 chars base64 string

while in a normal case those two values are generated.

Example:

const aWeekFromNow = Math.floor((Date.now() + 7 * 24 * 3600 * 1000) / 1000)

Auth.getAuthorizationToken({
    issuer: 'com.example.auth',
    expireAt: aWeekFromNow,
    extraParams: 'uid/233,active'
})

That would return something like:

0xAuth:1;com.example.auth;1559439788:1560044588;e3Jg;uid/233,active;de

Auth.signAndReturnToken(authTokenString, chain, privateKey, format = 'ps')

authTokenString is the auth token to be signed in string format chain is the abbreviation of one of the supported blockchains, for example eth or trx privateKey is the private key to be used for the signature format is the signature format (more info at 0xAuth protocol)

Auth.verifySignedToken(signedTokenString)

signedTokenString is a signed token containing all the info necessary for the verification.

History

0.1.0

  • updating Web3 and Tronweb

0.0.6

  • first complete version

Credits

License

The MIT License

Copyright (c) 2019 Francesco Sullo francesco@sullo.co