WebExtension handling Sign in with Google flow for Grindr authentication
- JavaScript 74.7%
- CSS 13.4%
- Shell 9.1%
- HTML 2.8%
| .vscode | ||
| chrome | ||
| contrib | ||
| firefox | ||
| geckoview | ||
| icons | ||
| shared | ||
| .gitignore | ||
| build.sh | ||
| LICENSE | ||
| README.md | ||
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.
Install
- Firefox, Librewolf (desktop & Android):
- Download from addons.mozilla.org (recommended)
- or download
grindr_google_oauth-x.x.x-firefox.zipfrom Releases, unarchive, load the unpacked directory viaabout:debugging(This Firefox → "Load Temporary Add-on")
- Google Chrome, Chromium & Chromium-based browsers (desktop only):
- Download
grindr_google_oauth-x.x.x-chrome.zipfrom Releases, unarchive, load the unpacked directory viachrome://extensions(Developer mode → "Load unpacked")
- Download
- GeckoView (for developers embedding this project into their Android app):
- Download
grindr_google_oauth-x.x.x-geckoview.zipfrom Releases, bundle the builtweb-ext-artifacts/geckoview/directory in your app'sassets/and install it as a built-in extension viaruntime.webExtensionController.ensureBuiltIn(uri, id)(nativeMessagingandgeckoViewAddonsare privileged permissions that only work for a built-in extension)
- Download
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):
- Install the extension
- Click the toolbar icon
- A new tab opens with a button
- Click "Sign in with Google"
- Complete the OAuth flow in new tab
- Copy the resulting token from the page and paste it into the host app
GeckoView:
- Load web.grindr.com in a
GeckoSessionthat has this extension installed - The content script auto-runs and the token is delivered via native messaging
- The host registers a
MessageDelegateunder the same name asNATIVE_APPinshared/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.
