OpenLoginSdk icon indicating copy to clipboard operation
OpenLoginSdk copied to clipboard

Pluggable auth infrastructure for Web3 wallets and dapps

OpenLoginSdk

lerna code style: prettier npm

Packages @latest Version Size Description
🏠 Core
@toruslabs/openlogin npm version minzip Default package to be used to work with OpenLogin auth system
openlogin npm version minzip Wrapper package for @toruslabs/openlogin
🔌 Modules
@toruslabs/openlogin-jrpc npm version minzip Allows you to make JRPC requests easily. Creates & Manages JRPC Engines
@toruslabs/openlogin-ed25519 npm version minzip Allows you to get an ed25519 private key from a secp256k1 private key
@toruslabs/openlogin-subkey npm version minzip Allows you to derive an app-scoped key from a root key + client id via mimc hash
@toruslabs/openlogin-starkkey npm version minzip Allows you to get a starknet compatible private key from a secp256k1 private key
🐉 Low-Level
@toruslabs/openlogin-utils npm version minzip Shared TypeScript Types

Introduction

Your OpenLogin account is a cryptographic key that acts as a proxy to traditional SSOs. Accounts are secured across user devices and authentication methods - there is no central server, no data honey pot. It combines both CustomAuth and tKey and provides you with a nice UI and UX flows

This module generates the javascript to include in a DApp via a script tag. It creates an iframe that loads the OpenLogin page and sets up communication streams between the iframe and the DApp javascript context.

Features

  • Typescript compatible. Includes Type definitions

Please refer to docs for API Reference available here.

Installation

Bundling

Each sub package is distributed in 3 formats

  • esm build dist/<MODULE_NAME>.esm.js in es6 format
  • commonjs build dist/<MODULE_NAME>.cjs.js in es5 format
  • umd build dist/<MODULE_NAME>.umd.min.js in es5 format without polyfilling corejs minified

By default, the appropriate format is used for your specified usecase You can use a different format (if you know what you're doing) by referencing the correct file

The cjs build is not polyfilled with core-js. It is upto the user to polyfill based on the browserlist they target

Directly in Browser

CDN's serve the non-core-js polyfilled version by default. You can use a different

jsdeliver

<script src="https://cdn.jsdelivr.net/npm/<MODULE_NAME>"></script>

unpkg

<script src="https://unpkg.com/<MODULE_NAME>"></script>

Build

Ensure you have a Node.JS development environment setup:

git clone https://github.com/torusresearch/OpenLoginSdk.git
cd OpenLoginSdk
yarn
yarn build

To run tests:

yarn test

Requirements

  • This package requires a peer dependency of @babel/runtime
  • Node 14+
  • You will need to whitelist your domain on developer dashboard

License

OpenLoginSdk is MIT Licensed