2.0.1 • Published 3 years ago

stellar-auth-client v2.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
3 years ago

Stellar Auth client library

Version Build Status Coverage Status David David Try on RunKit

Client side library for Stellar SEP 0010 implementation.

Quick start

Using npm to include stellar-auth-client in your own project:

npm install --save stellar-auth-client

For browsers, use Bower to install stellar-auth-client. It exports a variable StellarAuthClient. The example below assumes you have stellar-auth-client.js relative to your html file.

<script src="https://cdnjs.cloudflare.com/ajax/libs/stellar-sdk/{version}/stellar-sdk.js"></script>
<script src="stellar-auth-client.js"></script>
<script>
  console.log(StellarAuthClient);
</script>

Install

To use as a module in a Node.js project

  1. Install it using npm:
npm install --save stellar-auth-client
  1. require/import it in your JavaScript:
var StellarAuthClient = require('stellar-auth-client');

To self host for use in the browser

  1. Install it using bower:
bower install stellar-auth-client
  1. Include it in the browser:
<script src="https://cdnjs.cloudflare.com/ajax/libs/stellar-sdk/{version}/stellar-sdk.js"></script>
<script src="./bower_components/stellar-auth-client/stellar-auth-client.js"></script>
<script>
  console.log(StellarAuthClient);
</script>

Usage

Initialization

const StellarAuthClient = require('stellar-auth-client');

// optional param
const options = {
  homeDomain: 'k.tempocrypto.com',
  bip32Path: `44'/148'/0'`,
  authAccount: null,
  authEndpoint: null,
  allowHttp: false
}

const auth = new StellarAuthClient('k.tempocrypto.com', options);
  • domain\ Domain where is the toml file.\ Required: false
  • options\ Object with optional params .\ Required: false
    • homeDomain\ Default home domain. If value is not set then domain is used.\ Default value: domain\ Required: false
    • bip32Path\ bip 32 path when you use loginWithLedger.\ Default value: '44'/148'/0'\ Required: false
    • authAccount\ server public key (toml SIGNING_KEY).\ Default value: null\ Required: false
    • authEndpoint\ Auth server endpoint (toml WEB_AUTH_ENDPOINT).\ Default value: null\ Required: false
    • allowHttp\ HTTPS required by default, use this with false for testing.\ Default value: false\ Required: false

loginWithSecret

const clientKeyPair = StellarSdk.Keypair.random();
auth
  .loginWithSecret(clientKeyPair.secret())
  .then(jwtToken => saveJwtToken(jwtToken))

With custom auth account and endpoint

const auth = new StellarAuthClient('yourdomain.com', {
  allowHttp: true,
  authAccount: 'GAJXKAG...your server public key...HP6PCHA',
  authEndpoint: 'http://localhost:3000/auth',
  networkPassphrase: 'Test SDF Network ; September 2015'
});

const clientKeyPair = StellarSdk.Keypair.random();
auth
  .loginWithSecret(clientKeyPair.secret())
  .then(jwtToken => saveJwtToken(jwtToken))

loginWithLedger

auth
  .loginWithLedger(/*{ bip32Path: `44'/148'/13'` }*/)
  .then(jwtToken => saveJwtToken(jwtToken))

Development

Run all tests:

$ npm install
$ npm test

To run a specific set of tests:

gulp test:node
gulp test:browser

Run a single test suite:

$ npm run mocha -- test/lib/index.spec.js

Run a single test (case sensitive):

$ npm run mocha -- test/lib/index.spec.js --grep 'allowHttp'

Library based on Stellar SEP-0010 implementation