0.1.5 • Published 1 year ago

@elrondnetwork/native-auth-client v0.1.5

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
1 year ago

Native Authenticator for JavaScript

Native Authenticator for JavaScript and TypeScript (written in TypeScript).

Distribution

npm

Example

Client-side

const client = new NativeAuthClient();
const init = await client.initialize();

// obtain signature by signing the following message: `${address}${init}`
// Example:
// - if the address is `erd1qnk2vmuqywfqtdnkmauvpm8ls0xh00k8xeupuaf6cm6cd4rx89qqz0ppgl` 
// - and the init string is `YXBpLmVscm9uZC5jb20.066de4ba7df143f2383c3e0cd7ef8eeaf13375d1123ec8bafcef9f7908344b0f.86400.e30`
// - then the signable message should be `erd1qnk2vmuqywfqtdnkmauvpm8ls0xh00k8xeupuaf6cm6cd4rx89qqz0ppgl066de4ba7df143f2383c3e0cd7ef8eeaf13375d1123ec8bafcef9f7908344b0f.86400.e30`

const accessToken = client.getToken(address, init, signature);

Client-side config

When initializing the client object, an optional config can also be specified with the following properties:

{
  // When used from within a browser, will contain the hostname by default.
  // It can be overridden for special situations
  // Note: The server-side component will validate the `origin` header, which must
  // match with the provided host in the client-side configuration
  host: string = 'myApp.com';

  // The endpoint from where the current block information will be fetched upon initialization.
  // The default value points to the mainnet API, but can be overridden to be network-specific
  // or to point to a self-hosted location
  apiUrl: string = 'https://api.elrond.com';

  // TTL that will be encoded in the access token.
  // This value will also be validated by the server and must not be greater than the maximum ttl allowed.
  // Default: one day (86400 seconds)
  expirySeconds: number = 60 * 60 * 24;
  
  // Optional, to fetch the block hash from a single shard.
  // Useful in the situations where the server connects directly to a node to fetch block info 
  // and would like a predictable shard for the validation of tokens
  blockHashShard: 0;
}