カフラ / 护照社交授权
Laravel Passport 的社交授权
v4.4.0
2022-02-10 11:54 UTC
Requires
- php: ^7.2|^8.0|^8.1
- laravel/passport: ^8.0|^9.0|^10.0
Requires (Dev)
- phpunit/phpunit: ^8.5|^9.0
This package is auto-updated.
Last update: 2024-09-10 17:42:20 UTC
README
此包为您的 Oauth2 服务器添加社交授权。
安装
您可以通过 composer 安装此包
composer require adaojunior/passport-social-grant
包将自动注册其服务提供者。或者,您可以在 config/app.php
文件中手动添加服务提供者
'providers' => [ // ... Adaojunior\PassportSocialGrant\SocialGrantServiceProvider::class, ];
设置
- 实现
SocialGrantUserProvider
接口
<?php namespace App\SocialGrant; use Laravel\Socialite\Facades\Socialite; use Illuminate\Contracts\Auth\Authenticatable; use League\OAuth2\Server\Entities\ClientEntityInterface; use Adaojunior\PassportSocialGrant\SocialGrantUserProvider; class UserProvider implements SocialGrantUserProvider { /** * Retrieve a user by provider and access token. * * @param string $provider * @param string $accessToken * @param ClientEntityInterface $client * @return Authenticatable|null */ public function getUserByAccessToken(string $provider, string $accessToken, ClientEntityInterface $client):? Authenticatable { } }
- 在您的应用程序服务提供者
app/Providers/AppServiceProvider.php
的register
方法中将SocialGrantUserProvider
接口绑定到您的实现
$this->app->bind( Adaojunior\PassportSocialGrant\SocialGrantUserProvider::class, App\SocialGrant\UserProvider::class );
使用方法
$response = $http->post('http://your.app/oauth/token', [ 'form_params' => [ 'grant_type' => 'social', 'client_id' => $clientId, 'client_secret' => $clientSecret, 'provider' => $providerName, // name of provider (e.g., 'facebook', 'google' etc.) 'access_token' => $providerAccessToken, // access token issued by specified provider ], ]);