Adds OAuth-based third-party authentication to CiSkeleton, allowing users to log in using external providers such as Google, Facebook, GitHub, Discord, LinkedIn, and Microsoft.
This plugin is designed to integrate cleanly with CiSkeleton’s settings system, authentication flow, and hook architecture.
- Third-party authentication using OAuth 2.0 providers
- Supports multiple providers out of the box:
- GitHub
- Discord
- Microsoft
- Provider-specific settings panels in the admin dashboard
- Fully integrated with CiSkeleton hooks and settings tabs
- Optional and non-intrusive: OAuth is disabled by default
- No impact on core authentication when disabled
- CiSkeleton
- PHP 8.0+
- cURL enabled
- Valid OAuth credentials for the providers you want to enable
- Copy the plugin into your plugins directory.
- Enable the plugin from the admin dashboard or plugin manager.
- Activate the plugin to register its configuration options.
After activation, OAuth settings become available in the admin dashboard.
Go to:
Admin → Settings → UsersEnable:
- Allow OAuth Authentication
This toggle controls whether third-party login is available at all.
Each provider has its own settings tab under Settings once the plugin is active:
- GitHub
- Discord
- Microsoft
For each provider:
- Enable the provider
- Enter the required Client ID
- Enter the required Client Secret
⚠️ You must create OAuth applications on each provider’s developer portal and configure the correct callback URLs.
The plugin relies entirely on CiSkeleton’s hook system:
- Registers OAuth drivers during plugin boot
- Adds required options during plugin activation
- Injects settings into existing and custom settings tabs
- Initializes OAuth only when enabled
- Handles OAuth login flow through a dedicated
do_oauthaction
No core files are modified.
plugin_boot_oauth— Registers OAuth drivers and autoloaded classes.plugin_activate_oauth— Adds required options to the database.plugin_deactivate_oauth— Removes all plugin-related options.init— Loads and initializes OAuth when enabled.do_oauth— Handles OAuth authentication flow.
settings_fields_users— Adds the global “Allow OAuth” toggle.settings_other— Registers provider-specific settings tabs.settings_fields_googlesettings_fields_facebooksettings_tab_discordsettings_tab_githubsettings_tab_linkedin
These filters integrate OAuth settings seamlessly into the admin UI.
- CSRF protection is enforced using OAuth state validation
- OAuth is disabled by default
- No credentials are stored outside the database options table
- Providers are only initialized when explicitly enabled
Deactivating the plugin will:
- Remove all OAuth-related options from the database
- Disable third-party authentication immediately
No residual data is left behind.
- Additional OAuth providers (optional)
- Improved error reporting per provider
- Optional account linking for existing users (in progress)
Apache License 2.0. See LICENSE for details.







