raymondwilkinson / manager
轻松添加新或覆盖 Laravel Socialite 内置提供者。
v3.0.0
2017-06-22 02:28 UTC
Requires
- php: ^5.6 || ^7.0
- raymondwilkinson/socialite: ~3.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^5.0
This package is not auto-updated.
Last update: 2024-09-14 19:14:44 UTC
README
关于
这是一个用于 Laravel Socialite 的包,允许您轻松添加新提供者或覆盖现有提供者。
优点
- 您将能够访问使用管理器加载的所有提供者。
- 实例化延迟到 Socialite 被调用时
- 您可以覆盖现有提供者
- 您可以创建新提供者
- Lumen 使用简单
stateless()
可以设置为true
或false
- 您可以动态地覆盖配置
- 它直接从
.env
文件中检索环境变量,而不是还需要配置服务数组。
可用提供者
- 查看 SocialiteProviders 列表
- 您也可以创建自己的或修改他人的
参考
创建处理器
下面是一个示例处理器。您需要将此完整的类名添加到 EventServiceProvider
中的 listen[]
。
- 另请参阅 Laravel 关于事件的文档.
providername
是提供者的名称,例如meetup
。- 您当然需要更改命名空间和类名。
namespace Your\Name\Space; use SocialiteProviders\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 \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