# 0xauth

> A javascript library for the 0xAuth protocol

Latest version **0.1.0** (published 2021-04-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install 0xauth
pnpm add 0xauth
yarn add 0xauth
bun add 0xauth
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2021-04-21 |
| First published | 2019-05-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=8.10.0 |
| Dependencies | 6 |
| Unpacked size | 59.8 KB |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Francesco Sullo |
| Maintainers | sullof |

## Links

- npm: https://www.npmjs.com/package/0xauth
- Repository: https://github.com/0xAuth/0xauth-js
- Homepage: https://0xauth.com
- Issues: https://github.com/0xAuth/0xauth-js/issues
- npm.io page: https://npm.io/package/0xauth

## Dependencies (6)

- [web3](https://npm.io/package/web3.md) ^1.3.5
- [husky](https://npm.io/package/husky.md) ^2.7.0
- [tronweb](https://npm.io/package/tronweb.md) ^3.2.6
- [crypto-js](https://npm.io/package/crypto-js.md) ^3.3.0
- [webpack-cli](https://npm.io/package/webpack-cli.md) ^3.3.12
- [eth-sig-util](https://npm.io/package/eth-sig-util.md) ^2.5.4

## Recent versions

- 0.1.0 (latest) — 2021-04-21
- 0.0.6 — 2019-06-16
- 0.0.5 — 2019-06-03
- 0.0.4 — 2019-06-02
- 0.0.3 — 2019-05-12
- 0.0.2 — 2019-05-04
- 0.0.1 — 2019-05-04

## README

# 0xauth-js
A javascript library for the 0xAuth protocol

### ALPHA DEVELOPMENT, NOT READY YET FOR REAL WORLD USES

Implementation of the [0xAuth protocol](https://github.com/0xauth/0xauth)


## 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](https://github.com/0xauth/0xauth))

### 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

  - [Francesco Sullo](https://francesco.sullo.co)

## License

[The MIT License](http://opensource.org/licenses/MIT)

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

---
_Source: https://npm.io/package/0xauth · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
