轻松添加新提供商或覆盖Laravel Socialite内置提供商。

v4.6.0 2024-05-04 07:57 UTC

README

Build Status codecov Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License StyleCI SensioLabsInsight

关于

这是一个Laravel Socialite的包,允许您轻松添加新提供商或覆盖现有提供商。

优点

  • 您将能够访问使用管理器加载的所有提供商。
  • 实例化延迟到Socialite被调用
  • 您可以覆盖现有提供商
  • 您可以创建新提供商
  • Lumen使用简单
  • stateless()可以设置为truefalse
  • 您可以动态覆盖配置
  • 它直接从.env文件检索环境变量,而不是还需要配置服务数组。

可用提供商

参考

创建处理程序

下面是一个示例处理程序。您需要将此完整类名添加到EventServiceProvider中的listen[]

namespace Your\Name\Space;

use SocialiteProviders\Manager\SocialiteWasCalled;

class ProviderNameExtendSocialite
{
    public function handle(SocialiteWasCalled $socialiteWasCalled)
    {
        $socialiteWasCalled->extendSocialite('providername', \Your\Name\Space\Provider::class);
    }
}

创建提供商

覆盖内置提供商

您可以通过创建一个与现有laravel/socialite提供商完全相同的名称(即'facebook')的新提供商来轻松覆盖内置提供商。

动态传递配置

您可以通过以下方式动态传递配置

$clientId = "secret";
$clientSecret = "secret";
$redirectUrl = "http://yourdomain.com/api/redirect";
$additionalProviderConfig = ['site' => 'meta.stackoverflow.com'];
$config = new \SocialiteProviders\Manager\Config($clientId, $clientSecret, $redirectUrl, $additionalProviderConfig);
return Socialite::with('provider-name')->setConfig($config)->redirect();

您必须在运行任何Socialite方法之前调用此方法。

创建OAuth1服务器类

查看其他OAuth1提供商以获取灵感。

获取访问令牌响应体

默认情况下,Laravel Socialite仅允许访问access_token。这可以通过\Laravel\Socialite\User->token公共属性访问。有时您需要访问整个响应体,这可能包含如refresh_token之类的项目。

为此,OAuth2提供商类需要扩展\SocialiteProviders\Manager\OAuth2\AbstractProvider,OAuth1提供商需要利用\SocialiteProviders\Manager\OAuth1\AbstractProvider\SocialiteProviders\Manager\OAuth1\Server

您可以从用户对象中访问它:$user->accessTokenResponseBody