@peppergaming/auth

Peppergaming Auth SDK

Easy Auth for web3 gaming apps.

Developing web3 apps is not easy, even more for games developers. Our Auth SDK allows easily to integrate a web3 Login module in your app. Passwordless, non-custodial Login. Integrate our SDK in your game in a few lines of code.

By using our SDK you can build a login infrastructure based on social logins or email and, for more advanced users, also external wallets. Currently, we support the following authentication methods:

Supported authentication methods

Method Type
Google Oauth
Discord Oauth
Twitch Oauth
Email Passwordless flow
Metamask External wallet
WalletConnect External wallet

Getting started

Installation

npm i --save @peppergaming/auth
// or
yarn add --save @peppergaming/auth

Usage

To quickly have access to the several login methods we support, just import the sdk and initialize it

import {PepperLogin} from "@peppergaming/auth"

// ...
const loginSDK = new PepperLogin();
await loginSDK.init()

// ...
// You can login with some auth method
const web3Provider = await loginSDK.connectTo("google")

//...
// When you want to logout
await loginSDK.logout()

That's it, now you have a web3 provider available in your app!

For more documentation about what a web3 provider is, checkout the ethers Provider documentation.

Advanced usage

Your login infrastructure may need further control about what happens during the login lifecycle. The PepperLogin class can be instantiated with an options object You can configure several SDK settings, one very useful option is the eventSubscriber. Here's an example of SDK initialization with an eventSubscriber option.

import {PepperLogin} from "@peppergaming/auth"


const eventSubscriber: EventSubscriber = {
async onConnecting() {
// put here your logic during connection
console.log("Connecting");
},
async onAuthChallengeSigning() {
// put here your logic during signing challenge
console.log("Signing Challenge");
},
async onConnected(userInfo: any, pepperAccessToken: string) {
// put here your logic for post connection
console.log("Connected with user info: ", userInfo);
},
async onDisconnected() {
// put here your logic for post disconnection
console.log("Disconnected");
},
async onErrored(error: any) {
// put here your logic for handling errors
console.log("Connection error");
},
};

// ...
const loginSDK = new PepperLogin({eventSubscriber});

await loginSDK.init()

Code documentation

For more details about the code please see the specific documentation.

Generated using TypeDoc