v-imarcom/manager-ingress

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

v4.0.2 2021-12-23 02:48 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);
    }
}

创建提供者

覆盖内置提供者

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

动态传递配置

您可以通过使用来动态传递配置

$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