noriel0010 / third-party-sso
PHP库,用于验证和验证来自不同社交平台(如facebook、microsoft、google、linkedin和apple)的3rd party AccessToken/IdToken,并通过提到的社交平台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: 2024-09-29 05:56:25 UTC
README
安装
通过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(); }
authenticate()
方法返回对象数据类型
Apple
对于Apple,这假设您已经从identityToken或从accessToken或从refresh_token中生成。请记住,identityToken仅在10分钟内有效。
使用
- Apple ID API
- Lcobucci JSON Web Token 3.3.3
- Guzzle
https://appleid.apple.com
作为默认发行者
测试
要测试Apple,您可以将新生成的identityToken粘贴到test/Apple/AppleTest.php:24
中,并将您的audience
粘贴到test/Apple/AppleTest.php:25
中,然后运行.\vendor\bin\phpunit test/Apple
。
对于Facebook,这假设您已经生成了accessToken。
使用
- Graph Facebook v4.0
- Guzzle
id,name,email
作为默认Facebook字段
测试
要测试Facebook,您可以将新生成的accessToken粘贴到test/Facebook/FacebookTest.php:24
中,然后运行.\vendor\bin\phpunit test/Facebook
。
对于Google,这假设您已经生成了accessToken和Google API密钥。
使用
- Google Person API v1
- Guzzle
names,emailAddresses
作为默认Google personFields查询参数
测试
要测试Google,您可以将新生成的accessToken粘贴到test/Google/GoogleTest.php:24
中,并将您的key
粘贴到test/Google/GoogleTest.php:25
中,然后运行.\vendor\bin\phpunit test/Google
。
对于LinkedIn,这假设您已经生成了accessToken。
使用
- Linkedin API v2
- Guzzle
(elements*(handle~))
作为默认Linkedin Email投影
测试
要测试Linkedin,您可以将新生成的accessToken粘贴到test/Linkedin/LinkedinTest.php:24
中,然后运行.\vendor\bin\phpunit test/Linkedin
。
Microsoft
对于Microsoft,这假设您已经生成了accessToken。
使用
测试
为了测试微软(Microsoft),您可以将您刚刚生成的 accessToken 粘贴到 test/Microsoft/MicrosoftTest.php:24
,然后运行 .\vendor\bin\phpunit test/Microsoft
。