1.1.2 • Published 1 year ago

d-auth-sdk v1.1.2

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

Decentralized Auth SDK

An SDK based on Lit-protocol for generating secure dapps.

Demo

  • Coming soon

Working on

  • Solana Network (devnet available)
  • Ethereum (coming soon)
  • Polygon (coming soon)
  • Optimism (coming soon)
  • Hardware device (coming soon)

Solana implementation

Connect to Solana cluster and set provider:

import { Connection, clusterApiUrl } from '@solana/web3.js'

const connection = new Connection(clusterApiUrl('devnet'));
const wallet = window.solana;

See Detecting the Provider.

Also, we recomend PhantomWalletAdapter:

import { PhantomWalletAdapter } from '@solana/wallet-adapter-phantom';

const wallet = new PhantomWalletAdapter();
await wallet.connect();

Create transaction to sign and sent to generate a new code:

import { createCodeSolana } from 'd-auth-sdk';

// Generate the transaction and code
const data = await createCodeSolana(connection, wallet.publicKey);

// Sign transaction with user wallet
const transactionSigned = await wallet.signTransaction(data.transaction);

// Send transaction to save code on Solana
const tx = await connection.sendRawTransaction(transactionSigned.serialize());

In mobile dapps, you can use Deeplink methods signTransaction or signAndSendTransaction


Get all codes in Solana Network by user wallet address:

import { getAllCodesSolana } from 'd-auth-sdk';

const codes = await getAllCodesSolana(connection, wallet.publicKey);
console.log('codes', codes);

Validate code in Solana Network, if true returns a JWT. You must use the function getMessageToSign() to create the message that will be signed.

import { validateCodeSolana, getMessageToSign } from 'd-auth-sdk';

const code = '132456';

const messageToSign = getMessageToSign(wallet.publicKey, code);
const encodedMessage = new TextEncoder().encode(messageToSign);
const userSignature = wallet.signMessage(encodedMessage);

const jwt = await validateCodeSolana(connection, wallet.publicKey, userSignature, code);
console.log('jwt', jwt)

To generate a signature with Phantom, see Signing a Message for desktop dapps or the Deeplink method SignMessage for mobile.


Validate Lit-protocol JWT:

import { verifyLitProtocolJWT } from 'd-auth-sdk';

const jwt = '...';
const valid = verifyLitProtocolJWT(jwt);
console.log('valid', valid)
1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

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