Skip to content

Introduction

ExtensionLogin is a complete authentication and user data capture solution designed specifically for Chrome Extension developers. It allows you to:

  • Authenticate users with email/password or Google OAuth
  • Capture user data (email, name, custom fields) when they use your extension
  • Send data to CRMs automatically (ClickFunnels, GoHighLevel, or custom webhooks)
  • Track usage and manage users through a dashboard

Why ExtensionLogin?

Building user authentication in Chrome extensions is complex:

  • Chrome's Manifest V3 restrictions limit what you can do
  • Managing tokens, sessions, and secure storage is tricky
  • Connecting to CRMs requires building multiple integrations
  • Scaling infrastructure for global users is expensive

ExtensionLogin handles all of this for you with a simple SDK.

Key Features

Simple Integration

Add authentication to your extension with just 3 lines of code:

javascript
ExtensionLogin.init({ apiKey: 'el_live_xxx' });
ExtensionLogin.identify({ email: 'user@example.com', name: 'John' });

Manifest V3 Compatible

Built from the ground up for Chrome's latest extension platform. Works with service workers, content scripts, and popups.

CRM Integration

Automatically send user data to:

  • ClickFunnels (with tag support)
  • GoHighLevel (with tag support)
  • Custom webhooks (any endpoint)

Global Edge Network

Built on Cloudflare Workers for sub-50ms response times worldwide.

Secure by Default

  • Encrypted credentials storage
  • Secure API key management
  • CORS protection
  • Rate limiting

Quick Example

Here's a complete example of adding ExtensionLogin to a Chrome extension popup:

html
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
  <title>My Extension</title>
</head>
<body>
  <div id="login-form">
    <input type="email" id="email" placeholder="Email">
    <input type="text" id="name" placeholder="Name">
    <button id="login">Login</button>
  </div>

  <script src="popup.js"></script>
</body>
</html>
javascript
// popup.js
import ExtensionLogin from 'extensionlogin';

ExtensionLogin.init({
  apiKey: 'el_live_xxxxxxxxxxxxxx'
});

document.getElementById('login').addEventListener('click', async () => {
  const email = document.getElementById('email').value;
  const name = document.getElementById('name').value;

  const result = await ExtensionLogin.identify({ email, name });

  if (result.success) {
    console.log('User identified:', result.user);
  }
});

Next Steps

Built for Chrome Extension Developers