MicrosoftAuthService
in package
Service class for Microsoft OAuth authentication integration.
Handles Microsoft OAuth flow, user authentication, and account linking.
Tags
Table of Contents
Constants
- SESSION_LINK_KEY = 'LWT-Microsoft-Link'
- Session key for link mode flag.
- SESSION_PENDING_LINK_KEY = 'microsoft_link_pending'
- Session key for pending link data.
- SESSION_STATE_KEY = 'LWT-Microsoft-State'
- Session key for OAuth state parameter.
Properties
- $provider : Azure|null
- $userFacade : UserFacade
Methods
- __construct() : mixed
- Create a new MicrosoftAuthService.
- clearPendingLinkData() : void
- Clear pending link data from session.
- getAuthorizationUrl() : string
- Get the authorization URL for Microsoft OAuth.
- getPendingLinkData() : array{microsoft_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 Microsoft OAuth is configured.
- linkMicrosoftToUser() : void
- Link Microsoft 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() : Azure
- Get the Microsoft OAuth provider.
- handleLinkAccount() : User|null}
- Handle linking Microsoft account to existing LWT user.
- handleLoginOrRegister() : User|null}
- Handle Microsoft 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-Microsoft-Link'
SESSION_PENDING_LINK_KEY
Session key for pending link data.
private
mixed
SESSION_PENDING_LINK_KEY
= 'microsoft_link_pending'
SESSION_STATE_KEY
Session key for OAuth state parameter.
private
mixed
SESSION_STATE_KEY
= 'LWT-Microsoft-State'
Properties
$provider
private
Azure|null
$provider
= null
Cached Microsoft OAuth provider
$userFacade
private
UserFacade
$userFacade
User facade for LWT user management
Methods
__construct()
Create a new MicrosoftAuthService.
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 Microsoft 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{microsoft_id: string, email: string}|null
Return values
array{microsoft_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 Microsoft
- $state : string
-
State parameter for CSRF validation
Return values
User|null}isConfigured()
Check if Microsoft OAuth is configured.
public
isConfigured() : bool
Return values
bool —True if Microsoft OAuth credentials are set
linkMicrosoftToUser()
Link Microsoft account after password verification.
public
linkMicrosoftToUser(string $microsoftId, User $user) : void
Parameters
- $microsoftId : string
-
Microsoft 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 Microsoft
Return values
string —Generated username
getDefaultRedirectUri()
Get the default redirect URI based on current request.
private
getDefaultRedirectUri() : string
Return values
stringgetProvider()
Get the Microsoft OAuth provider.
private
getProvider() : Azure
Return values
AzurehandleLinkAccount()
Handle linking Microsoft account to existing LWT user.
private
handleLinkAccount(string $microsoftId) : User|null}
Parameters
- $microsoftId : string
-
Microsoft user ID
Return values
User|null}handleLoginOrRegister()
Handle Microsoft login or new user registration.
private
handleLoginOrRegister(string $microsoftId, string $email, string $name) : User|null}
Parameters
- $microsoftId : string
-
Microsoft user ID
- $email : string
-
Email from Microsoft
- $name : string
-
Name from Microsoft
Return values
User|null}startSession()
Start a PHP session.
private
startSession() : void