Install this library through Composer.
composer require noriel0010/third-party-sso
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
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.
- Apple ID API
- Lcobucci JSON Web Token 3.3.3
- Guzzle
https://appleid.apple.com
as Defaultissuer
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
.
For Facebook, this assumes that you already have generated accessToken.
- Graph Facebook v4.0
- Guzzle
id,name,email
as Default Facebook Fields
To test Facebook, you can paste your freshly generated accessToken in
test/Facebook/FacebookTest.php:24
then run .\vendor\bin\phpunit test/Facebook
.
For Google, this assumes that you already have generated accessToken and Google API key.
- Google Person API v1
- Guzzle
names,emailAddresses
as Default Google personFields Query Parameter
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
.
For LinkedIn, this assumes that you already have generated accessToken.
- Linkedin API v2
- Guzzle
(elements*(handle~))
as Default Linkedin Email Projection
To test Linkedin, you can paste your freshly generated accessToken in
test/Linkedin/LinkedinTest.php:24
then run .\vendor\bin\phpunit test/Linkedin
.
For Microsoft, this assumes that you already have generated accessToken.
To test Microsoft, you can paste your freshly generated accessToken in
test/Microsoft/MicrosoftTest.php:24
then run .\vendor\bin\phpunit test/Microsoft
.