1. Go to this page and download the library: Download tharangakothalawala/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/ */
tharangakothalawala / sso example snippets
use TSK\SSO\ThirdParty\Google\GoogleConnectionFactory;
$googleConnectionFactory = new GoogleConnectionFactory();
$googleConnection = $googleConnectionFactory->get(
'google_client_id',
'google_client_secret',
'http://www.your-amazing-app.com/sso/google/grant'
);
header("Location: $googleConnection->getGrantUrl()");
use TSK\SSO\Auth\DefaultAuthenticator;
use TSK\SSO\Auth\Exception\AuthenticationFailedException;
use TSK\SSO\ThirdParty\Exception\NoThirdPartyEmailFoundException;
use TSK\SSO\ThirdParty\Exception\ThirdPartyConnectionFailedException;
use TSK\SSO\ThirdParty\Google\GoogleConnectionFactory;
use YouApp\TSKSSO\YourImplementationOfTheAppUserRepository;
$googleConnectionFactory = new GoogleConnectionFactory();
$googleConnection = $googleConnectionFactory->get(
'google_client_id',
'google_client_secret',
'http://www.your-amazing-app.com/sso/google/grant'
);
$authenticator = new DefaultAuthenticator(
new YourImplementationOfTheAppUserRepository()
);
try {
$appUser = $authenticator->authenticate($googleConnection);
} catch (AuthenticationFailedException $ex) {
} catch (DataCannotBeStoredException $ex) {
} catch (NoThirdPartyEmailFoundException $ex) {
} catch (ThirdPartyConnectionFailedException $ex) {
} catch (\Exception $ex) {
}
// log the detected application's user in
$_SESSION['userId'] = $appUser->id();
use TSK\SSO\Auth\PersistingAuthenticator;
use YouApp\TSKSSO\YourImplementationOfTheAppUserRepository;
$authenticator = new PersistingAuthenticator(
new YourImplementationOfTheAppUserRepository()
);
use TSK\SSO\Auth\PersistingAuthenticator;
use TSK\SSO\Storage\PdoThirdPartyStorageRepository;
use YouApp\TSKSSO\YourImplementationOfTheAppUserRepository;
$authenticator = new PersistingAuthenticator(
new YourImplementationOfTheAppUserRepository(),
new PdoThirdPartyStorageRepository(
// In Laravel, you can do this to get its PDO connection: \DB::connection()->getPdo();
new PDO('mysql:dbname=db;host=localhost', 'foo', 'bar'),
'Optional Table Name (default:thirdparty_connections)'
),
);
use TSK\SSO\Auth\PersistingAuthenticator;
use TSK\SSO\Storage\PdoThirdPartyStorageRepository;
use YouApp\TSKSSO\YourImplementationOfTheAppUserRepository;
$authenticator = new PersistingAuthenticator(
new YourImplementationOfTheAppUserRepository(),
new MysqliThirdPartyStorageRepository(new mysqli('localhost', 'foo', 'bar', 'db')),
);
use TSK\SSO\Auth\PersistingAuthenticator;
use TSK\SSO\Storage\PeclMongoDbThirdPartyStorageRepository;
use YouApp\TSKSSO\YourImplementationOfTheAppUserRepository;
$authenticator = new PersistingAuthenticator(
new YourImplementationOfTheAppUserRepository(),
new PeclMongoDbThirdPartyStorageRepository(new MongoDB\Driver\Manager('mongodb://localhost:27017/yourdb'), 'yourdb'),
);
use TSK\SSO\ThirdParty\VendorConnectionRevoker;
$vendorConnectionRevoker = new VendorConnectionRevoker(
$googleConnection, // the vendor connection
// [optional] `TSK\SSO\Storage\ThirdPartyStorageRepository` implementation. File system storage is used by default
);
$vendorConnectionRevoker->revoke($vendorEmail, $vendorName); // returns a bool
use TSK\SSO\AppUser\ExistingAppUser;
use TSK\SSO\Auth\AppUserAwarePersistingAuthenticator;
use TSK\SSO\Auth\PersistingAuthenticator;
use YouApp\TSKSSO\YourImplementationOfTheAppUserRepository;
$userId = $_SESSION['userid'];
if (!is_null($userId)) {
$authenticator = new AppUserAwarePersistingAuthenticator(
new ExistingAppUser($userId, '[email protected]')
);
} else {
$authenticator = new PersistingAuthenticator(
new YourImplementationOfTheAppUserRepository()
);
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.