2.0.1 • Published 3 years ago
stellar-auth-client v2.0.1
Stellar Auth client library
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
- Install it using npm:
npm install --save stellar-auth-client
- require/import it in your JavaScript:
var StellarAuthClient = require('stellar-auth-client');
To self host for use in the browser
- Install it using bower:
bower install stellar-auth-client
- 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
- homeDomain\
Default home domain. If value is not set then domain is used.\
Default value:
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