WebExtension handling Sign in with Google flow for Grindr authentication
  • JavaScript 78.7%
  • CSS 10.7%
  • Shell 8.2%
  • HTML 2.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-07 00:40:10 +02:00
.vscode Initial commit 2026-07-01 14:33:24 +02:00
chrome Reformat at tab width 4 and apply the shared lint rules 2026-08-07 00:40:09 +02:00
contrib Add screenshot 2026-07-04 01:55:10 +02:00
firefox Reformat at tab width 4 and apply the shared lint rules 2026-08-07 00:40:09 +02:00
geckoview Reformat at tab width 4 and apply the shared lint rules 2026-08-07 00:40:09 +02:00
icons Add correct icons to each target 2026-07-03 18:58:01 +02:00
shared Reformat at tab width 4 and apply the shared lint rules 2026-08-07 00:40:09 +02:00
.editorconfig Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
.git-blame-ignore-revs Ignore the mechanical reformat in blame 2026-08-07 00:40:10 +02:00
.gitignore Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
build.sh Override gis-core for Chrome Web Store 2026-07-08 16:08:50 +01:00
bun.lock Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
bunfig.toml Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
eslint.config.js Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
lefthook.yml Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
LICENSE Initial commit 2026-07-01 14:33:24 +02:00
package.json Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
prettier.config.js Adopt @opengrind/config and lefthook 2026-08-07 00:40:02 +02:00
README.md Reformat at tab width 4 and apply the shared lint rules 2026-08-07 00:40:09 +02:00

Grindr Google OAuth WebExtension

Note

This is a developer tool not intended for general use.
You might be looking for Open Grind or Open Grind Google OAuth Android app.

WebExtension that gets OAuth access token via Google Identity Services (GIS) for Grindr sign-in. Made possible by the fact that GIS refuses to run in embedded app WebViews, and GeckoView forbids the host app from injecting JS into pages.

Screenshot

Install

  • Firefox, Librewolf (desktop & Android):
    • Download from addons.mozilla.org (recommended)
    • or download grindr_google_oauth-x.x.x-firefox.zip from Releases, unarchive, load the unpacked directory via about:debugging (This Firefox → "Load Temporary Add-on")
  • Google Chrome, Chromium & Chromium-based browsers (desktop only):
    • Download from chrome.google.com (recommended)
    • or download grindr_google_oauth-x.x.x-chrome.zip from Releases, unarchive, load the unpacked directory via chrome://extensions (Developer mode → "Load unpacked")
  • GeckoView (for developers embedding this project into their Android app):
    • Download grindr_google_oauth-x.x.x-geckoview.zip from Releases, bundle the built web-ext-artifacts/geckoview/ directory in your app's assets/ and install it as a built-in extension via runtime.webExtensionController.ensureBuiltIn(uri, id) (nativeMessaging and geckoViewAddons are privileged permissions that only work for a built-in extension)

Alternatively, clone the repository yourself and build the extension using ./build.sh [firefox|chrome|geckoview] (requires Bun).

Usage

Firefox, Librewolf (desktop & Android) and Google Chrome, Chromium & Chromium-based browsers (desktop only):

  1. Install the extension
  2. Click the toolbar icon
  3. A new tab opens with a button
  4. Click "Sign in with Google"
  5. Complete the OAuth flow in new tab
  6. Copy the resulting token from the page and paste it into the host app

GeckoView:

  1. Load web.grindr.com in a GeckoSession that has this extension installed
  2. The content script auto-runs and the token is delivered via native messaging
  3. The host registers a MessageDelegate under the same name as NATIVE_APP in shared/background.js:
controller.setMessageDelegate(extension, delegate, "grindr_google_oauth")
// delegate.onMessage receives { type: "token", token: "ya29..." }

The token is then to be used with the /v8/sessions/thirdparty endpoint.

License

MIT