# auth0-lock

> Auth0 Lock

Latest version **15.0.1** (published 2026-06-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install auth0-lock
pnpm add auth0-lock
yarn add auth0-lock
bun add auth0-lock
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 15.0.1 |
| Published | 2026-06-30 |
| First published | 2014-08-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 16 |
| Unpacked size | 1.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 1142 |
| Author | Auth0 |
| Maintainers | auth0-oss, auth0npm, auth0brokkr, jessele, oktajeffoktajeff, bsmith-auth0, sanjay.manikandhan, niltorresatko, henry.mcardle, nicolas.villalobos, josecarlos-chavez_atko, tj.okta, sgarcia-atko, roger.chan, maaantone, lewisbyrne-okta, tarunpreet.kaur |
| Keywords | auth0, auth, openid, authentication, passwordless, browser, jwt |

## Links

- npm: https://www.npmjs.com/package/auth0-lock
- Repository: https://github.com/auth0/lock
- Issues: https://github.com/auth0/lock/issues
- npm.io page: https://npm.io/package/auth0-lock

## Dependencies (16)

- [qs](https://npm.io/package/qs.md) ^6.14.1
- [jsonp](https://npm.io/package/jsonp.md) ^0.2.1
- [react](https://npm.io/package/react.md) ^18.2.0 || ^19.0.0
- [events](https://npm.io/package/events.md) ^3.3.0
- [auth0-js](https://npm.io/package/auth0-js.md) ^10.0.0
- [url-join](https://npm.io/package/url-join.md) ^1.1.0
- [dompurify](https://npm.io/package/dompurify.md) ^3.2.5
- [immutable](https://npm.io/package/immutable.md) ^3.7.6
- [react-dom](https://npm.io/package/react-dom.md) ^18.2.0 || ^19.0.0
- [validator](https://npm.io/package/validator.md) ^13.15.22
- [classnames](https://npm.io/package/classnames.md) ^2.3.2
- [prop-types](https://npm.io/package/prop-types.md) ^15.8.0
- [blueimp-md5](https://npm.io/package/blueimp-md5.md) ^2.19.0
- [password-sheriff](https://npm.io/package/password-sheriff.md) ^2.0.0
- [react-transition-group](https://npm.io/package/react-transition-group.md) ^4.4.5
- [auth0-password-policies](https://npm.io/package/auth0-password-policies.md) ^3.1.0

## Alternatives

- [@clerk/clerk-expo](https://npm.io/package/@clerk/clerk-expo.md) — 133.6K weekly downloads
- [@pothos/plugin-authz](https://npm.io/package/@pothos/plugin-authz.md) — 12.4K weekly downloads
- [@bounded-sh/client](https://npm.io/package/@bounded-sh/client.md) — 3.2K weekly downloads
- [@luigi-project/plugin-auth-oauth2](https://npm.io/package/@luigi-project/plugin-auth-oauth2.md) — 2.3K weekly downloads
- [@nocobase/plugin-verification](https://npm.io/package/@nocobase/plugin-verification.md) — 2.0K weekly downloads

## Recent versions

- 15.0.1 (latest) — 2026-06-30
- 11.35.1 (v11) — 2023-02-02
- 12.0.0-beta.0 (beta) — 2022-12-12
- 10.2.3 (support) — 2016-10-21
- 10.0.0-rc.2 (rc) — 2016-07-05
- 15.0.0 — 2026-06-05
- 14.3.0 — 2026-04-06
- 14.2.5 — 2026-03-19
- 14.2.4 — 2026-01-21
- 14.2.3 — 2026-01-12
- 14.2.2 — 2025-12-17
- 14.2.1 — 2025-12-03
- 14.2.0 — 2025-10-21
- 14.1.0 — 2025-09-15
- 13.2.0 — 2025-08-07
- … 337 more at https://npm.io/package/auth0-lock/versions

## README

![Auth0's configurable login form for web applications](https://cdn.auth0.com/website/sdks/banners/lock-banner.png)
![Release](https://img.shields.io/npm/v/auth0-lock)
![Downloads](https://img.shields.io/npm/dw/auth0-lock)
[![License](https://img.shields.io/:license-mit-blue.svg?style=flat)](https://opensource.org/licenses/MIT)
[![Build Status](https://github.com/auth0/lock/actions/workflows/test.yml/badge.svg)](https://github.com/auth0/lock/actions/workflows/test.yml)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/auth0/lock)

> :warning: Lock is built using React 18 from v12 onwards. Getting issues? Please [submit a bug report](https://github.com/auth0/lock/issues/new?assignees=&labels=bug+report,v12&template=report_a_bug.md&title=).

> :warning: From v12 onwards, we no longer publish to Bower.

## Documentation

- [Docs Site](https://auth0.com/docs) - explore our Docs site and learn more about Auth0.

## Getting Started

### Browser Compatibility

We ensure browser compatibility in Chrome, Safari, Firefox.

### Installation

Install Lock into your project using [npm](https://npmjs.org):

```sh
npm install auth0-lock
```

From CDN

```html
<!-- Latest patch release (recommended for production) -->
<script src="https://cdn.auth0.com/js/lock/15.0.1/lock.min.js"></script>
```

### Configure Auth0

Create a **Single Page Application** in the [Auth0 Dashboard](https://manage.auth0.com/#/applications).

> **If you're using an existing application**, verify that you have configured the following settings in your Single Page Application:
>
> - Click on the "Settings" tab of your application's page.
> - Scroll down and click on the "Show Advanced Settings" link.
> - Under "Advanced Settings", click on the "OAuth" tab.
> - Ensure that "JsonWebToken Signature Algorithm" is set to `RS256` and that "OIDC Conformant" is enabled.
>   Next, configure the following URLs for your application under the "Application URIs" section of the "Settings" page:

- **Allowed Callback URLs**: `http://localhost:3000`
- **Allowed Logout URLs**: `http://localhost:3000`
- **Allowed Web Origins**: `http://localhost:3000`

> These URLs should reflect the origins that your application is running on. **Allowed Callback URLs** may also include a path, depending on where you're handling the callback (see below).
> Take note of the **Client ID** and **Domain** values under the "Basic Information" section. You'll need these values in the next step.

### Configure the SDK

Create either an `Auth0Lock` or `Auth0LockPasswordless` instance, depending on your use case:

#### Auth0Lock

```js
import { Auth0Lock } from 'auth0-lock';

const lock = new Auth0Lock('{YOUR_AUTH0_CLIENT_ID}', '{YOUR_AUTH0_DOMAIN}');
```

#### Auth0LockPasswordless

```js
import { Auth0LockPasswordless } from 'auth0-lock';

const lock = new Auth0LockPasswordless('{YOUR_AUTH0_CLIENT_ID}', '{YOUR_AUTH0_DOMAIN}');
```

### Logging In

Configure a listener for the `authenticated` event to retrieve an access token and call `show` to display the Lock widget.

```html
<button id="login">Click to Login</button>
```

```js
lock.on('authenticated', function (authResult) {
  lock.getUserInfo(authResult.accessToken, function (error, profileResult) {
    if (error) {
      // Handle error
      return;
    }

    accessToken = authResult.accessToken;
    profile = profileResult;

    // Update DOM
  });
});

// Show the widget when the login button is clicked
document.getElementById('login').addEventListener('click', () => {
  lock.show()
});.
```

For other comprehensive examples and documentation on the configuration options, see the [EXAMPLES.md](https://github.com/auth0/lock/blob/master/EXAMPLES.md) document.

## Feedback

### Contributing

We appreciate feedback and contribution to this repo! Before you get started, please see the following:

- [Auth0's general contribution guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md)
- [Auth0's code of conduct guidelines](https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md)
- [This repo's contribution guide](https://github.com/auth0/lock/blob/master/DEVELOPMENT.md)

### Raise an issue

:warning: Note: We are no longer supporting requests for new features. Only requests for bug fixes or security patches will be considered.

To provide feedback or report a bug, please [raise an issue on our issue tracker](https://github.com/auth0/lock/issues).

### Vulnerability Reporting

Please do not report security vulnerabilities on the public GitHub issue tracker. The [Responsible Disclosure Program](https://auth0.com/whitehat) details the procedure for disclosing security issues.

## What is Auth0?

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://cdn.auth0.com/website/sdks/logos/auth0_dark_mode.png" width="150">
    <source media="(prefers-color-scheme: light)" srcset="https://cdn.auth0.com/website/sdks/logos/auth0_light_mode.png" width="150">
    <img alt="Auth0 Logo" src="https://cdn.auth0.com/website/sdks/logos/auth0_light_mode.png" width="150">
  </picture>
</p>
<p align="center">
  Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout <a href="https://auth0.com/why-auth0">Why Auth0?</a>
</p>
<p align="center">
  This project is licensed under the MIT license. See the <a href="https://github.com/auth0/lock/blob/master/LICENSE"> LICENSE</a> file for more info.
</p>

---
_Source: https://npm.io/package/auth0-lock · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
