zhulei-nj / manager
轻松添加新的或覆盖 Laravel Socialite 内置提供者。
Requires
- php: ^5.6 || ^7.0
- laravel/socialite: ~2.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^5.0
This package is not auto-updated.
Last update: 2024-09-23 12:15:40 UTC
README
轻松添加新的或覆盖 Laravel Socialite 内置提供者
Laravel Socialite 的一个包,允许您轻松添加新提供者或覆盖当前提供者。
优势
您将能够访问通过管理器加载的所有提供者。实例化延迟到调用 Socialite 时。您可以覆盖当前提供者。您可以创建新提供者。Lumen 使用简单,stateless() 可以设置为 true 或 false。您可以动态覆盖配置。它直接从 .env 文件中检索环境变量,而不是也必须配置服务数组。可用提供者
查看 zhulei-nj 列表。您也可以自己创建或修改他人的参考
Laravel 关于事件的文档。Laravel 5 事件的视频教程。Laravel Socialite 文档。Laravel Socialite 视频:创建处理程序
以下是一个示例处理程序。您需要将此完整的类名添加到 EventServiceProvider 中的 listen[]。
查看 Laravel 关于事件的文档。providername 是提供者的名称,例如 meetup。当然,您需要更改命名空间和类名。
use zhulei\Manager\SocialiteWasCalled;
class ProviderNameExtendSocialite { public function handle(SocialiteWasCalled $socialiteWasCalled) { $socialiteWasCalled->extendSocialite('providername', \Your\Name\Space\Provider::class); } } 创建提供者
查看已创建的提供者以获取灵感。查看 Medium 上的这篇文章:覆盖内置提供者
您可以通过创建具有完全相同名称(例如 'facebook')的新提供者轻松覆盖内置 laravel/socialite 提供者。
动态传递配置
您可以通过以下方式动态传递配置
$clientId = "secret"; $clientSecret = "secret"; $redirectUrl = "http://yourdomain.com/api/redirect"; $additionalProviderConfig = ['site' => 'meta.stackoverflow.com']; $config = new \zhulei\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 提供者类需要扩展 \zhulei\Manager\OAuth2\AbstractProvider,OAuth1 提供者需要利用 \zhulei\Manager\OAuth1\AbstractProvider 和 \zhulei\Manager\OAuth1\Server。
您可以从用户对象中访问它:$user->accessTokenResponseBody