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
Requires
- php: ^7.1
- ext-mbstring: *
- ext-openssl: *
- guzzlehttp/guzzle: ^6.0|^7.0
- lcobucci/jwt: 3.3.3
- phpseclib/phpseclib: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2025-04-29 01:11:51 UTC
README
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
- Apple ID API
- Lcobucci JSON Web Token 3.3.3
- Guzzle
https://appleid.apple.com
as Defaultissuer
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
.
For Facebook, this assumes that you already have generated accessToken.
Uses
- Graph Facebook v4.0
- Guzzle
id,name,email
as Default Facebook Fields
Test
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.
Uses
- Google Person API v1
- Guzzle
names,emailAddresses
as Default Google personFields Query Parameter
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
.
For LinkedIn, this assumes that you already have generated accessToken.
Uses
- Linkedin API v2
- Guzzle
(elements*(handle~))
as Default Linkedin Email Projection
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
.