@peppergaming/auth
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.32 • Public • Published

    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, UserInfo} 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: UserInfo, 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.

    Install

    npm i @peppergaming/auth

    DownloadsWeekly Downloads

    268

    Version

    0.0.32

    License

    MIT

    Unpacked Size

    210 kB

    Total Files

    65

    Last publish

    Collaborators

    • cardosofelipe
    • pepper-gaming