New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@peersky/eth-auth

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@peersky/eth-auth

Create and verify authentication token signed by an EOA

latest
Source
npmnpm
Version
2.1.1
Version published
Maintainers
1
Created
Source

Ethereum Address Authentication

Build an authentication workflow with using Ethereum address and EIP712.

token is stored as base64 encoded string of an object of following interface:

interface TokenInterface {
  address: string;
  deadline: number;
  signature: string;
}

Deadline is stored as number (in seconds).

install: yarn add @peersky/eth-auth

Frontend

API:

/**
 * Signs an access token
 * @function signAccessToken
 * @param  {String} signer  Signer who will sign the token
 * @param  {String} duration How long token should be valid [Seconds]
 * @param  {String} domain Optional EIP712 compliant domain data
 * @return {Promise<string>} base64 encoded token
 */
function signAccessToken(
  signer: Wallet | JsonRpcSigner | HDNodeWallet,
  duration: number,
  domain?: TypedDataDomain
): Promise<string>;
/**
 * Parses a base64 encoded token
 * @function parseToken
 * @param  {String} token token
 * @return {TokenInterface}
 */
function parseToken(token: string): TokenInterface;
/**
 * Checks if token is outdated
 * @function isOutdated
 * @param  {string | number} deadline in seconds since midnight, January 1, 1970 UTC.
 * @return {boolean}
 */
function isOutdated(deadline: number | string): boolean;
/**
 * Validates if token is legit
 * @function validateToken
 * @param  {string} token base64 encoded token
 * @param {domain} domain Optional EIP712 domain data
 * @return {boolean} If true => token is legit
 */
function validateToken(token: string, domain?: TypedDataDomain): boolean;
/**
 * Tries to get an authenticated addess from provided token.
 * Will Throw if authentication fails.
 * @function tryGetAuthenticated
 * @param  {string} token base64 encoded token
 * @param {domain} domain Optional EIP712 domain data
 * @return {boolean} If true => token is legit
 */
function tryGetAuthenticated(token: string, domain?: TypedDataDomain): string;

FAQs

Package last updated on 31 Oct 2023

Related posts