1. Go to this page and download the library: Download 68publishers/oauth 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/ */
68publishers / oauth example snippets
namespace App\OAuth\Config;
use SixtyEightPublishers\OAuth\Config\Config;
use SixtyEightPublishers\OAuth\Config\LazyConfig;
use App\SettingsProvider;
final class AzureConfig extends LazyConfig
{
public function __construct(SettingsProvider $provider) {
parent::__construct(
configFactory: static function (): Config {
return new Config(
flowEnabled: $provider->get('azure.enabled'),
options: [
'clientId' => $provider->get('azure.clientId'),
'clientSecret' => $provider->get('azure.clientSecret'),
],
);
}
);
}
}
namespace App\OAuth;
use SixtyEightPublishers\OAuth\Authentication\AuthenticatorInterface;
use SixtyEightPublishers\OAuth\Exception\AuthenticationException;
use SixtyEightPublishers\OAuth\Authorization\AuthorizationResult;
use Nette\Security\IIdentity;
use Nette\Security\SimpleIdentity;
final class AzureAuthenticator implements AuthenticatorInterface
{
public function authenticate(string $flowName, AuthorizationResult $authorizationResult): IIdentity
{
$accessToken = $authorizationResult->accessToken;
$resourceOwner = $authorizationResult->resourceOwner;
if ($userCannotBeAuthenticated) {
throw new AuthenticationException('User can not be authenticated.');
}
return new SimpleIdentity(/* ... */);
}
}
namespace App\Presenter;
use Nette\Application\UI\Presenter;
use SixtyEightPublishers\OAuth\Bridge\Nette\Application\OAuthPresenterTrait;
use SixtyEightPublishers\OAuth\Exception\OAuthExceptionInterface;
final class OAuthPresenter extends Presenter
{
use OAuthPresenterTrait;
protected function onAuthorizationRedirectFailed(string $flowName, OAuthExceptionInterface $error): void
{
$this->flashMessage('Authentication failed', 'error');
$this->redirect('SignIn:');
}
abstract protected function onAuthenticationFailed(string $flowName, OAuthExceptionInterface $error): void
{
$this->flashMessage('Authentication failed', 'error');
$this->redirect('SignIn:');
}
abstract protected function onUserAuthenticated(string $flowName): void
{
$this->flashMessage('You have been successfully logged in', 'success');
$this->redirect('Homepage:');
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.