stellar-auth-client

2.0.1 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i stellar-auth-client

Weekly Downloads

1

Version

2.0.1

License

MIT

Unpacked Size

16.7 kB

Total Files

12

Last publish

Collaborators

  • dolcalmi