acharsoft / manager
轻松添加新提供者或覆盖 Laravel Socialite 内置提供者。
v3.3.4
2019-01-16 07:58 UTC
Requires
- php: ^5.6 || ^7.0
- laravel/socialite: ~3.0|~4.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^5.0
- dev-master
- v3.3.4
- v3.3.3
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.0
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.2.1
- v2.2.0
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- 2.0.x-dev
- v2.0.2
- v2.0.1
- v2.0.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1
This package is auto-updated.
Last update: 2024-09-14 03:08:27 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); } }
创建提供者
- 查看已创建的 providers 以获取灵感。
- 查看 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 providers 以获取灵感。
获取访问令牌响应体
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