auth.andert.me/src/lib/services/authWithMetamask/README.md

1.9 KiB

authWithMetamask.ts Documentation

This module provides utility functions for handling authentication signatures (AuthSigs) with MetaMask using the @lit-protocol/lit-node-client.

Table of Contents

Dependencies

  • @lit-protocol/lit-node-client: Used to interact with the Lit Protocol and sign authentication messages.
  • @lit-protocol/constants: Provides constants used in this module, specifically LOCAL_STORAGE_KEYS.AUTH_SIGNATURE for local storage key.

Functions

generateAuthSig

Description: This asynchronous function initiates the signing of an authentication message using MetaMask and stores the signed message (AuthSig) in the browser's local storage.

Returns: An authSig object containing the signed message if successful.

Throws: An error with a descriptive message if the signing process fails.

getStoredAuthSig

Description: Retrieves the stored AuthSig from the browser's local storage.

Returns: A parsed authSig object if found, or null if not.

logout

Description: Clears the stored AuthSig from the browser's local storage.

Returns: void

Usage

To use the authWithMetamask.ts module in a Svelte component:

<script>
	import { onMount } from 'svelte';
	import {
		generateAuthSig,
		getStoredAuthSig,
		logout
	} from '$lib/services/authWithMetamask/authWithMetamask';

	let authSig = null;
	let error = null;

	async function handleAuth() {
		try {
			authSig = await generateAuthSig();
		} catch (err) {
			error = err.message;
		}
	}

	function handleLogout() {
		logout();
		authSig = null;
	}

	onMount(() => {
		authSig = getStoredAuthSig();
	});
</script>