4.2.2 • Published 5 months ago

@futureverse/auth-react v4.2.2

Weekly downloads
-
License
-
Repository
-
Last release
5 months ago

Futureverse Auth React

Provides a React authentication provider for Futureverse Auth.

Installation

NPM:

    npm install @futureverse/auth-react --save
    npm install wagmi viem@2.x @tanstack/react-query

Yarn:

    yarn add @futureverse/auth-react
    yarn add wagmi viem@2.x @tanstack/react-query

Usage

Config.ts

import React, { PropsWithChildren } from 'react';
import { FutureverseAuthClient } from '@futureverse/auth-react';
import { FutureverseAuthProvider, FutureverseWagmiProvider, useFutureverseSigner } from '@futureverse/auth-react';
import { createWagmiConfig } from '@futureverse/auth-react/wagmi';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { cookieStorage, createStorage } from 'wagmi';

// Demo application example for React authentication provider
const clientId = '<your-futureverse-client-id>';
const walletConnectProjectId = '<your-wallet-connect-project-id>';
const xamanAPIKey = '<your-xaman-application->';

export const authClient = new FutureverseAuthClient({
  clientId,
  environment: 'production',
  redirectUri: '<your-app-redirect-endpoint>',
  postLogoutRedirectUri: '<your-app-post-logout-redirect-endpoint>',
});
const queryClient = new QueryClient();

export const getWagmiConfig = async () => {
  return createWagmiConfig({
    walletConnectProjectId,
    xamanAPIKey,
    authClient,
    // Optional if supporting SSR
    ssr: true,
    // Optional chains you wish to support
    chains: [mainnet, sepolia, polygonAmoy],
    // Optional if supporting SSR
    storage: createStorage({
      storage: cookieStorage,
    }),
  });
};

Providers.ts

// For NextJS App Router
'use client';

import {
  FutureverseAuthProvider,
  FutureverseWagmiProvider,
} from '@futureverse/auth-react';
import { QueryClientProvider } from '@tanstack/react-query';
import { State } from 'wagmi';
import { authClient, getWagmiConfig, queryClient } from './config';

export default function Providers({
  children,
  initialWagmiState,
}: {
  children: React.ReactNode;
  initialWagmiState?: State;
}) {
  return (
    <QueryClientProvider client={queryClient}>
      <FutureverseWagmiProvider
        getWagmiConfig={getWagmiConfig}
        initialState={initialWagmiState}
      >
        <FutureverseAuthProvider authClient={authClient}>
            {children}
        </FutureverseAuthProvider>
      </FutureverseWagmiProvider>
    </QueryClientProvider>
  );
}

Hooks

For the simplest sign in flow you can use the connectAndSignIn method which will attempt to connect a wallet client and sign directly into FuturePass. Alternatively we recommend using @futureverse/auth-ui to handle sign in and connectors.

import { useAuth, useConnector } from '@futureverse/auth-react';
const { signIn, signOutPass, userSession, authMethod } = useAuth();
...

const { connect, connectAndSignIn, disconnect } = useConnector();
...
// Connect and sign into FuturePass
connectAndSignIn('futureverseCustodialEmail', 'popup')
...


// Connecting Custodial wallet clients
connect('futureverseCustodialEmail');
connect('futureverseCustodialGoogle');
connect('futureverseCustodialFacebook');
connect('futureverseCustodialX');
connect('futureverseCustodialTikTok');

// Connecting Web3 wallet clients
connect('walletConnect');
connect('metaMaskSDK');
connect('coinbaseWalletSDK');
connect('xaman');
3.5.14

11 months ago

3.3.0-beta.0

11 months ago

4.0.5

7 months ago

4.0.4

7 months ago

4.0.7

6 months ago

4.0.6

6 months ago

4.0.1

11 months ago

4.0.0

11 months ago

4.0.3

9 months ago

4.0.2

9 months ago

3.6.0-beta.6

6 months ago

3.6.0-beta.7

6 months ago

3.6.0-beta.8

6 months ago

3.6.0-beta.9

6 months ago

3.5.14-rc.0

11 months ago

3.6.0-beta.0

8 months ago

3.6.0-beta.1

8 months ago

3.6.0-beta.2

8 months ago

3.6.0-beta.3

8 months ago

3.6.0-beta.4

8 months ago

3.6.0-beta.5

8 months ago

3.6.0-beta.10

6 months ago

3.6.0-beta.11

6 months ago

3.5.0-beta.0

11 months ago

3.4.0-beta.0

11 months ago

4.2.2

5 months ago

4.0.0-rc.0

11 months ago

3.9.0-beta.0

5 months ago

4.2.1

5 months ago

4.2.0

5 months ago

3.10.0-beta.0

5 months ago

3.10.0-beta.1

5 months ago

3.7.0-beta.0

6 months ago

3.2.0-beta.0

11 months ago

4.1.4

6 months ago

4.1.3

6 months ago

4.1.5

6 months ago

4.1.0

6 months ago

3.8.0-beta.0

6 months ago

4.1.2

6 months ago

4.1.1

6 months ago

3.5.13

12 months ago

3.5.12

12 months ago

3.5.11

12 months ago

3.5.10

12 months ago

3.5.7

1 year ago

3.5.9

12 months ago

3.5.8

1 year ago

3.5.6

1 year ago

3.5.5

1 year ago

3.5.4

1 year ago

3.4.12

1 year ago

3.5.3

1 year ago

3.5.2

1 year ago

3.5.1

1 year ago

3.5.0

1 year ago

3.4.11

1 year ago

3.1.7-beta.0

1 year ago

3.4.4

1 year ago

3.4.3

1 year ago

3.4.10

1 year ago

3.4.8

1 year ago

3.4.7

1 year ago

3.4.6

1 year ago

3.4.5

1 year ago

3.4.9

1 year ago

3.4.2

1 year ago

3.4.0

1 year ago

3.4.1

1 year ago

3.3.0

1 year ago

3.2.2

1 year ago

3.2.3

1 year ago

3.2.1

1 year ago

3.2.0

1 year ago

3.1.9

1 year ago

3.1.8

1 year ago

3.1.7

1 year ago

3.1.6

1 year ago

3.1.5

1 year ago

3.1.4

1 year ago

3.1.3

1 year ago

3.1.2-beta.0

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.4

1 year ago

3.0.3

1 year ago

3.0.2

1 year ago

3.0.1

1 year ago

3.0.0

1 year ago

2.4.8

1 year ago

2.4.7

1 year ago

2.4.6

1 year ago

2.4.5

1 year ago

2.4.4

1 year ago

2.4.3

1 year ago

2.4.2

1 year ago

2.4.1

1 year ago

2.4.0

1 year ago

2.3.3

1 year ago

2.3.2

1 year ago

2.3.1

1 year ago

2.3.0

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.6

1 year ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.3.1

1 year ago

0.3.0

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago