Skip to main content

Overview

Beginner
Concept

When building an application that enables users to have profiles or buy and sell assets, you must implement an authentication method. An authentication method allows users to log into an application by providing some form of credential or verification of identity. Authentication methods vary in levels of security and data privacy.

To implement authentication in your dapp, your application frontend must provide a user interface component that triggers an authentication workflow. Then, the backend logic must implement code to handle the authentication and return a response to the frontend service.

A simple example of this workflow is a basic 'Who am I?' application that uses Internet Identity for authentication. View the integrating with Internet Identity documentation for more information.

Authentication methods

Authentication methods available on ICP include:

  • Internet Identity: ICP's native identity service that uses a cryptographic public/private key pair for authentication.

  • Email and password: Authentication with an email and password.

  • NFID: A digital form of identity that allows users to use an email and password or their Google account.

  • Sign in with Ethereum: An authentication standard that enables Ethereum wallet-based authentication for ICP applications.

  • ic-auth: A modular tool to integrate wallet providers into ICP apps. Supports Stoic, Plug, Internet Identity, and NFID.

  • Plug wallet: An in-browser wallet for managing all ICP assets such as cycles, ICP, tokens, and NFTs.