1. Go to this page and download the library: Download azaharizaman/nexus-sso library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
azaharizaman / nexus-sso example snippets
namespace App\Services\SSO;
use Nexus\SSO\Contracts\UserProvisioningInterface;
use Nexus\SSO\ValueObjects\UserProfile;
use Nexus\Identity\Contracts\UserManagerInterface;
final readonly class IdentityUserProvisioner implements UserProvisioningInterface
{
public function __construct(
private UserManagerInterface $userManager
) {}
public function findOrCreateUser(
UserProfile $profile,
string $providerName,
string $tenantId
): string {
// Check if user exists by SSO ID or email
$existingUser = $this->findBySsoId($profile->ssoUserId, $providerName);
if ($existingUser) {
return $existingUser->id;
}
// JIT provisioning - create new user
return $this->userManager->createUser([
'email' => $profile->email,
'first_name' => $profile->firstName,
'last_name' => $profile->lastName,
'display_name' => $profile->displayName,
]);
}
// ... implement other methods
}
use Nexus\SSO\ValueObjects\SsoProviderConfig;
use Nexus\SSO\ValueObjects\SsoProtocol;
use Nexus\SSO\ValueObjects\AttributeMap;
$azureConfig = new SsoProviderConfig(
providerName: 'azure',
protocol: SsoProtocol::OIDC,
clientId: 'your-azure-client-id',
clientSecret: 'your-azure-client-secret',
discoveryUrl: 'https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration',
redirectUri: 'https://your-app.com/sso/callback/azure',
attributeMap: new AttributeMap(
mappings: [
'sso_user_id' => 'oid',
'email' => 'email',
'first_name' => 'given_name',
'last_name' => 'family_name',
],
use Nexus\SSO\Contracts\SsoManagerInterface;
class LoginController
{
public function __construct(
private readonly SsoManagerInterface $ssoManager
) {}
public function redirectToAzure()
{
$result = $this->ssoManager->initiateLogin(
providerName: 'azure',
tenantId: 'tenant-123',
parameters: ['returnUrl' => '/dashboard']
);
return redirect($result['authUrl']);
}
}
public function handleCallback(Request $request)
{
$session = $this->ssoManager->handleCallback(
providerName: 'azure',
callbackData: [
'code' => $request->get('code'),
],
state: $request->get('state')
);
// Session contains authenticated user profile
$userProfile = $session->userProfile;
// Log user in locally
auth()->loginUsingId($userProfile->ssoUserId);
return redirect('/dashboard');
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.