Last updated
Last updated
The Picket constructor creates a new instance of the Picket class. It takes a publishable API key as a parameter.
Weโve placed a placeholder publishable API key in this example. Replace it with your .
login
optionally takes in token ownership requirements parameter. You can use this if you only want to allow users to login if they have a specific token, commonly referred to as .
login
is the easiest way to use Picket with your web, mobile, or native application. This enables you to securely login users via their wallet with a single line of code.
Checkout the Getting Started Guides
logout
deletes the cached user's access token.
authState
returns the user's current authorization state.
If the user is logged in, this includes the user's accessToken
and information. If the user is logged out, the authState
will be null.
On success, isCurrentUserAuthorized
will update the user's access token. The updated access token contains the user's related token balances, so all future calls isCurrentUserAuthorized
will return true. Once a user is logged out or their session expires, their cached token balances will be cleared.
By default, all calls to isCurrentUserAuthorized
check the user's access token token balances before re-fetching their balances from the blockchain. This avoids unnecessary network I/O and keeps the user experience as snappy as possible.
If you know the user's related token balances have changed, you can force Picket to re-fetch their information via the revalidation
parameter
connect
is a convenience function for connecting to a wallet provider with the user-friendly Picket connect modal
A nonce
is random value generated by the Picket API to that user must sign to prove ownership a wallet address. The login
function handles nonce
generation and signature verification for you. You'll only need to use nonce
if you'd like to implement your own wallet authentication flow.
A nonce
is unique to a project and wallet address. If a nonce
doesn't exist for the project and wallet address, Picket will generate a new nonce
; otherwise, Picket will return the existing nonce. A nonce
is valid for two minutes before self-destructing.
nonce
takes in an optional locale
parameter, which is used to localize the signing message statement in to the given locale
. When using the login
function from picket-js
or picket-react
, the user's browser locale will automatically be passed as the locale
for the signing message statement.
Language Codes
If the access token is valid, validate
returns the decoded claims of the access token.
The Picket Login Modal supports several themes. By default the login modal will use the light
theme. However, you can set it to a different theme to best fit into your overall web experience.
You can set the theme when instantiating Picket:
By default, picket.loginWithRedirect
will redirect back to the same location (window.location.href
) as the initial login request. If you'd like your user to be redirected to a different page, you can pass in additional options
Popup windows are often blocked by browsers. For a consistent user experience, prefer login
or loginWithRedirect
For more information on Token Gating, read the or Token Gating Getting Started Guide
isCurrentUserAuthorized
checks if the currently logged in user meets the given authorization requirements. This is commonly used for implementing .
locale
must be a BCP-47 language code. To see a full list, checkout
validate
. This is helpful to ensure that cached local token is still valid when the app loads. The picket-js
library automatically validates access tokens when they are loaded from the local storage cache.
Supported themes can be found .
picket.loginWithRedirect
implements the . In this flow the user is redirected back to a whitelisted redirect URI after authentication, so there are two steps the process 1) authenticate the user 2) handle the login redirect, also known as the login callback.
picket.loginWithPopup
is an alternative implementation of the that uses a popup rather than a redirect to securely authenticate users. The lack of redirects is convenient from a user experience perspective, but popups are often blocked by browsers, especially on mobile browsers. If you use this method, warn your users to enable popups on their browser if the flow fails.
Getting started with picket-js