GoogleAuthService
in package
Service class for Google OAuth authentication integration.
Handles Google OAuth flow, user authentication, and account linking.
Tags
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_LINK_KEY
Session key for link mode flag.
private
mixed
SESSION_LINK_KEY
= 'LWT-Google-Link'
SESSION_PENDING_LINK_KEY
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
$provider
private
Google|null
$provider
= null
Cached Google OAuth provider
$userFacade
private
UserFacade
$userFacade
User facade for LWT user management
Methods
__construct()
Create a new GoogleAuthService.
public
__construct(UserFacade $userFacade) : mixed
Parameters
- $userFacade : UserFacade
-
User facade for user management
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}|nullgetUserFacade()
Get the user facade.
public
getUserFacade() : UserFacade
Return values
UserFacadehandleCallback()
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
stringgetProvider()
Get the Google OAuth provider.
private
getProvider() : Google
Return values
GooglehandleLinkAccount()
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}startSession()
Start a PHP session.
private
startSession() : void