eos-auth

Add user authentication and wallet access to any EOS dApp

Usage no npm install needed!

<script type="module">
  import eosAuth from 'https://cdn.skypack.dev/eos-auth';
</script>

README

oreid-js

ORE ID Helper library written in Javascript

About

oreid-js is a javascript helper library for interacting with the Aikon ORE ID service.

ORE ID is a simple way to add OAuth login to your blockchain enabled app.

Install npm package:

npm install eos-auth

Usage

Example code:

//Initialize the library
let oreId = new OreId({ appId, apiKey, oreIdUrl });

//Start the OAuth flow by setting the user's browser to this URL
let authUrl = await oreId.getOreIdAuthUrl({ provider, callbackUrl, backgroundColor });
//...then handle the callback results of the Auth flow
let authResults = oreId.handleAuthResponse(authCallbackResults);

//Request that the user sign a transaction by setting the user's browser to this URL
let signUrl = await oreId.getOreIdSignUrl({ account, transaction, signCallbackUrl, chain, state, broadcast, returnSignedTransaction });
//...then handle the callback results of the Sign flow
let signResults = oreId.handleSignResponse(signedCallbackResults);

//Get the user's info given a blockchain account
let userInfo = await oreId.getUserInfoFromApi(account);

Express Middleware

This library includes Express middleware that you can use to simplify handling the callbacks from the ORE ID service.

// authCallbackHandler middleware handles callback response from ORE ID and extracts results
app.use('/authcallback', authCallbackHandler(oreId) );

Check out the Express Server example for a complete example.

Using EOS Transit and/or UAL

eos-auth makes it easy for you to add many popular EOS wallets to your app. It integrates EOS Transit and UAL so that you can use any wallet they support. eos-auth is the easiest way to use EOS Transit or UAL with your app.

EOS Transit

// add the provider package for each wallet you want to support
import scatterProvider from 'eos-transit-scatter-provider';
// pass in the array of providers when you initialize the library
const eosTransitWalletProviders = [ scatterProvider(), ... ]
const oreId = new OreId({ ..., eosTransitWalletProviders });

UAL

// add the provider package for each wallet you want to support
import { Scatter } from 'ual-scatter';
// pass in the array of providers when you initialize the library
const ualWalletProviders = [ Scatter, ... ]
let oreId = new OreId({ ..., ualWalletProviders });

NOTE: You can use both UAL and Transit together however you can't pass in duplicate providers. Using ual-scatter and eos-transit-scatter-provider at the same time will result in an error.

Current Support

Providers/Authenticators EOS Transit UAL
Scatter
Ledger
Lynx
Token Pocket
Meet One
Keycat
Whalevault
Portis

Check out the Express Server example for a complete example.

Example projects

Refer to the examples folder in the ore-id-docs repo for the following sample projects

  • ReactJS - A simple ReactJS website that includes React Login button component

  • React Native - A React Native app that includes a React OAuth flow modal component

  • Express Server - A simple Express server that includes the use of middleware to automate handling of callbacks

  • React Passwordless - A simple ReactJS website to call the passwordless api