Godot OAuth 2.0 Plugin
A Godot plugin that provides a unified GDScript interface for OAuth 2.0 authentication flows on Android and iOS.
It supports popular OAuth providers via presets (Google, Apple, GitHub, Discord, Auth0) as well as fully custom OAuth2 providers, with built-in PKCE, deep link handling, and secure token storage through native platform integrations.
Key Features:
- Unified OAuth 2.0 API for Android and iOS
- Built-in provider presets (Google, Apple, GitHub, Discord, Auth0)
- Custom OAuth2 provider support
- PKCE (Proof Key for Code Exchange) support
- Deep link–based redirect handling
- Secure token storage via native platform plugins
- Session-based token management
- Editor-friendly configuration via exported properties
Demo
Try the demo app located in the demo directory.
Installation
Before installing: uninstall any previous version of this plugin. If installing both Android and iOS versions in the same project, ensure both use the same addon interface version.
Via AssetLib (recommended)
- Search for
OAuthin the Godot Editor's AssetLib and click Download. (AssetLib Links: Android, iOS) - In the install dialog, keep the default install folder (project root) and Ignore asset root checked, then click Install.
- Enable the plugin under Project → Project Settings → Plugins.
If the installer warns about conflicting files when adding a second platform, you can safely ignore it — both platforms share the same addon code.
Manually
- Download the release archive from GitHub and unzip it into your project's root directory.
- Enable the plugin under Project → Project Settings → Plugins.
Dependencies
Depends on the Deeplink Plugin, which is required to receive OAuth redirect callbacks via custom URI schemes.
Quick Start
- Add an
OAuth2node to your main scene or to an autoload/global scene. - Add a
Deeplinknode to your scene and configure your redirect URI. - Assign the
Deeplinknode path in theOAuth2node inspector. - Configure provider settings (preset or custom).
- Connect to
OAuth2signals. - Call
authorize()to start authentication. - Use the
OAuth2node’s public methods to initiate authorization and manage sessions. - Listen to signals to handle success, errors, and cancellations.
Example:
@onready var oauth2 := $OAuth2
func _ready():
oauth2.auth_started.connect(_on_auth_started)
oauth2.auth_success.connect(_on_auth_success)
oauth2.auth_error.connect(_on_auth_error)
oauth2.auth_cancelled.connect(_on_auth_cancelled)
func login():
oauth2.authorize()
func _on_auth_started():
print("Authentication started")
func _on_auth_success(token_data: Dictionary):
print("Authentication success:", token_data)
func _on_auth_error(msg: String):
print("Authentication error:", msg)
func _on_auth_cancelled():
print("Authentication cancelled")
Documentation
Explore the plugin documentation for a deep dive into features:
All Plugins
| ✦ | Plugin | Android | iOS | Latest Release | Downloads | Stars |
|---|---|---|---|---|---|---|
| Admob | ✅ | ✅ | ||||
| Connection State | ✅ | ✅ | ||||
| Deeplink | ✅ | ✅ | ||||
| Firebase | ✅ | ✅ | - | - | ||
| In-App Review | ✅ | ✅ | ||||
| Native Camera | ✅ | ✅ | ||||
| Notification Scheduler | ✅ | ✅ | ||||
| OAuth 2.0 | ✅ | ✅ | ||||
| QR | ✅ | ✅ | ||||
| Share | ✅ | ✅ |
Credits
Developed by Cengiz
Based on Godot Mobile Plugin Template v2
Original repository: Godot OAuth 2.0 Plugin
Contributing
See our guide if you would like to contribute to this project.
💖 Support the Project
If this plugin has helped you, consider supporting its development! Every bit of support helps keep the plugin updated and bug-free.
| ✦ | Ways to Help | How to do it |
|---|---|---|
| ✨⭐ | Spread the Word | Star this repo to help others find it. |
| 💡✨ | Give Feedback | Open an issue or suggest a feature. |
| 🧩 | Contribute | Submit a PR to help improve the codebase. |
| ❤️ | Buy a Coffee | Support the maintainers on GitHub Sponsors or other platforms. |
⭐ Star History
Changelog for version v1.1-Multi
No changelog provided for this version.