UAuth Web3Modal Library
The @uauth/web3modal
library is a middleware library used for integrating UAuth with Web3Modal applications.
connector()
The connector
function is used to create a provider for the web3modal
library.
async function connector(
UAuth: typeof UAuthSPA,
opts: IUAuthOptions
): Promise<any>;
registerWeb3Modal()
The connector()
function needs access to a web3modal
instance in order to connect a provider properly. This function registers a web3modal
instance for the connector
to use. This function MUST be called before connector().
function registerWeb3Modal(web3modal: Web3Modal) => void
getUAuth()
This function creates and returns a new UAuth instance using the package and options.
function getUAuth(UAuth: typeof UAuthSPA, opts: IUAuthOptions): UAuth;
display
Since UAuth is not natively integrated into the web3modal
library, applications must supply some assets for the Web3 Modal UI. These are those assets.
import type {IProviderDisplay} from 'web3modal'
export const display: IProviderDisplay = { ... }
IUAuthOptions
The options object passed to the connector function to configure a UAuth provider for Web3Modal. Extends IAbstractConnectorOptions
and UAuthConstructorOptions;
interface IUAuthOptions
extends Partial<IAbstractConnectorOptions>,
UAuthConstructorOptions {
shouldLoginWithRedirect?: boolean;
}
shouldLoginWithRedirect
If set to true
, the UAuth provider created by the connector function will use the login() method instead of the default, loginWithPopup().
Then you must set up a callback page for the authorization server to redirect back to.
import UAuthSPA from "@uauth/js";
import * as UAuthWeb3Modal from "@uauth/web3modal";
import { uauthOptions } from "./web3modal";
// On page load...
UAuthWeb3Modal.getUAuth(UAuthSPA, uauthOptions)
.loginCallback()
.then(async () => {
const provider = await web3modal.connectTo("custom-uauth");
// Save provider in state and redirect to success page
})
.catch((error) => {
// Redirect to failure page
});