Documentation

GoogleAuthService

Service class for Google OAuth authentication integration.

Handles Google OAuth flow, user authentication, and account linking.

Tags
since
3.0.0

Table of Contents

Constants

SESSION_LINK_KEY  = 'LWT-Google-Link'
Session key for link mode flag.
SESSION_PENDING_LINK_KEY  = 'google_link_pending'
Session key for pending link data.
SESSION_STATE_KEY  = 'LWT-Google-State'
Session key for OAuth state parameter.

Properties

$provider  : Google|null
$userFacade  : UserFacade

Methods

__construct()  : mixed
Create a new GoogleAuthService.
clearPendingLinkData()  : void
Clear pending link data from session.
getAuthorizationUrl()  : string
Get the authorization URL for Google OAuth.
getPendingLinkData()  : array{google_id: string, email: string}|null
Get pending link data from session.
getUserFacade()  : UserFacade
Get the user facade.
handleCallback()  : User|null}
Handle the OAuth callback.
isConfigured()  : bool
Check if Google OAuth is configured.
linkGoogleToUser()  : void
Link Google account after password verification.
generateUsername()  : string
Generate a username from email or name.
getDefaultRedirectUri()  : string
Get the default redirect URI based on current request.
getProvider()  : Google
Get the Google OAuth provider.
handleLinkAccount()  : User|null}
Handle linking Google account to existing LWT user.
handleLoginOrRegister()  : User|null}
Handle Google login or new user registration.
startSession()  : void
Start a PHP session.

Constants

Session key for link mode flag.

private mixed SESSION_LINK_KEY = 'LWT-Google-Link'

Session key for pending link data.

private mixed SESSION_PENDING_LINK_KEY = 'google_link_pending'

SESSION_STATE_KEY

Session key for OAuth state parameter.

private mixed SESSION_STATE_KEY = 'LWT-Google-State'

Properties

Methods

clearPendingLinkData()

Clear pending link data from session.

public clearPendingLinkData() : void

getAuthorizationUrl()

Get the authorization URL for Google OAuth.

public getAuthorizationUrl([bool $linkMode = false ]) : string
Parameters
$linkMode : bool = false

If true, link to existing account instead of login

Return values
string

The authorization URL

getPendingLinkData()

Get pending link data from session.

public getPendingLinkData() : array{google_id: string, email: string}|null
Return values
array{google_id: string, email: string}|null

handleCallback()

Handle the OAuth callback.

public handleCallback(string $code, string $state) : User|null}
Parameters
$code : string

Authorization code from Google

$state : string

State parameter for CSRF validation

Return values
User|null}

isConfigured()

Check if Google OAuth is configured.

public isConfigured() : bool
Return values
bool

True if Google OAuth credentials are set

linkGoogleToUser()

Link Google account after password verification.

public linkGoogleToUser(string $googleId, User $user) : void
Parameters
$googleId : string

Google user ID

$user : User

User to link

generateUsername()

Generate a username from email or name.

private generateUsername(string $email, string $name) : string
Parameters
$email : string

Email address

$name : string

Name from Google

Return values
string

Generated username

getDefaultRedirectUri()

Get the default redirect URI based on current request.

private getDefaultRedirectUri() : string
Return values
string

handleLinkAccount()

Handle linking Google account to existing LWT user.

private handleLinkAccount(string $googleId) : User|null}
Parameters
$googleId : string

Google user ID

Return values
User|null}

handleLoginOrRegister()

Handle Google login or new user registration.

private handleLoginOrRegister(string $googleId, string $email, string $name) : User|null}
Parameters
$googleId : string

Google user ID

$email : string

Email from Google

$name : string

Name from Google

Return values
User|null}

        
On this page

Search results