PHPackages                             exceed/exauth-oauth - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. exceed/exauth-oauth

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

exceed/exauth-oauth
===================

Social login (Google) for exAuth - CodeIgniter 4 authentication library.

v1.0.8(1mo ago)012↓75%MITPHPPHP ^8.2

Since Jul 16Pushed 1mo agoCompare

[ Source](https://github.com/ExceedRepo/exauth-oauth)[ Packagist](https://packagist.org/packages/exceed/exauth-oauth)[ RSS](/packages/exceed-exauth-oauth/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (4)Versions (10)Used By (0)

exauth-oauth
============

[](#exauth-oauth)

Social login (Google) for **exAuth** — the CodeIgniter 4 authentication library.

> **Status:** Phase 1 — **Google only**. GitHub / Facebook will follow in phase 2. Compatible with `exceed/exauth ^1.4`.

This is a **separate package** — it does NOT modify the core `exceed/exauth`library. It only adds an OAuth identity type, controllers, routes, and a service.

Features
--------

[](#features)

- Login with Google (OpenID Connect)
- **Account linking** — if the Google email is already registered, the user is asked for their local password to "link" the accounts (prevents account takeover)
- **State + PKCE** protection (CSRF-safe)
- Tokens stored in `auth_identities.extras` (safe, not truncated)
- OAuth users are created automatically with a placeholder password + `status = 'oauth'`

Install
-------

[](#install)

```
composer require exceed/exauth-oauth
```

Setup
-----

[](#setup)

### Option A — Automatic (recommended)

[](#option-a--automatic-recommended)

```
php spark exauth-oauth:publish
```

This creates `app/Config/OAuth.php` with the correct `Config` namespace that extends the package base config. Use `-f` to overwrite an existing file.

### Option B — Manual

[](#option-b--manual)

Create `app/Config/OAuth.php` (must use the `Config` namespace and extend the package base config — NOT a plain copy of the vendor file, which would clash):

```
