Login

This method is only relevant if you are not using Metafi SSO login. If you are using Metafi SSO, you do not need to implement this function. This function does not trigger a UI modal.

Description

This function should be called whenever a new JWT token is issued to the user when they first log in, when a refreshed token is issued, or if the user is switched. This JWT will be authenticated via a webhook endpoint that you will provide, and only once validated can the user access their wallet.

Details

Signature

Login(userIdentifier, token, callback)

Arguments

ParameterTypeDefinition

userIdentifier

String

The unique user ID for the current player.

Please ensure that this userIdentifier matches the value returned by your verification endpoint.

token

String

The encoded JWT token issued to the user.

callback?

Function

A callback function that will be executed once the user is successfully logged in. The callback function will return a data structure similar to that returned by the RetrieveUser function

Return Value

None

JWT Verification Endpoint

You can update your JWT verification URL on the Developer Portal under the Project Settings menu.

Here is a sample repo containing sample code for the JWT verification endpoint.

When the Login function is invoked, we will invoke the configured JWT verification URL with the token passed to us in the Login function in the body. The response must be the userIdentifier of the user to which you want the user's wallet to be linked to.

The endpoint must implement the following format:

POST https://your-webhook-url/path

Request Body

NameTypeDescription

token

String

The JWT token to be verified

{
    "userIdentifier": "userIdentifier"
}

Example

import { useMetafi } from '@metafi/metafi-react-package';
import { handleLogin } from './login-controller'

export const LoginComponent = () => {
    const { Login } = useMetafi();
    
    const onLogin = () => {
        var jwtToken = handleLogin();  // your logic to login user
        Login("test@gmail.com", jwtToken, (result, error) => {
            console.log("received the following from login", result, error)
        });
    }
    
    return <>
        <button onClick={onLogin}>Login</button>
    </>
}

Last updated