noriel0010/third-party-sso

PHP Library to verify and validate 3rd party AccessToken/IdToken from different Social Media (facebook, microsoft, google, linkedin and apple) and authenticate a User with mentioned social media id


README

Latest Version

Installation

Install this library through Composer.

composer require noriel0010/third-party-sso

Sample Usage

use Noriel\SSO\Auth\Service\ThirdPartyService;

$service = new ThirdPartyService();

try {
    $apple = $service->apple('apple.identity.token', 'your.app.as.audience')->authenticate();
    $facebook = $service->facebook('facebook.access.token')->authenticate();
    $google = $service->google('google.access.token', 'google_key')->authenticate();
    $linkedin = $service->linkedin('linkedin.access.token')->authenticate();
    $microsoft = $service->microsoft('microsoft.access.token')->authenticate();
} catch (\Throwable $th) {
    echo $th->getMessage();
}

The authenticate() method returns Object Data Type

Apple

For Apple, this assumes that you already have generated identityToken either from accessToken or from refresh_token. Remember that identityToken is valid ONLY for 10 minutes.

Uses

Test

To test Apple, you can paste your freshly generated identityToken in test/Apple/AppleTest.php:24 and your audience in test/Apple/AppleTest.php:25 then run .\vendor\bin\phpunit test/Apple.

Facebook

For Facebook, this assumes that you already have generated accessToken.

Uses

Test

To test Facebook, you can paste your freshly generated accessToken in test/Facebook/FacebookTest.php:24 then run .\vendor\bin\phpunit test/Facebook.

Google

For Google, this assumes that you already have generated accessToken and Google API key.

Uses

Test

To test Google, you can paste your freshly generated accessToken in test/Google/GoogleTest.php:24 and your key in test/Google/GoogleTest.php:25 then run .\vendor\bin\phpunit test/Google.

LinkedIn

For LinkedIn, this assumes that you already have generated accessToken.

Uses

Test

To test Linkedin, you can paste your freshly generated accessToken in test/Linkedin/LinkedinTest.php:24 then run .\vendor\bin\phpunit test/Linkedin.

Microsoft

For Microsoft, this assumes that you already have generated accessToken.

Uses

Test

To test Microsoft, you can paste your freshly generated accessToken in test/Microsoft/MicrosoftTest.php:24 then run .\vendor\bin\phpunit test/Microsoft.