jennifer / steein-oauth2-laravel
适用于 Laravel Socialite 的 Steein OAuth2 提供程序
Requires
- php: ^5.6 || ^7.0
- socialiteproviders/manager: ~3.0 || v3.0.4
This package is not auto-updated.
Last update: 2024-09-29 03:47:07 UTC
README
安装
0.凭据
从www.steein.ru 获取您的应用程序 ID 和密钥。您必须设置有效的名称和回调 URL。
1. Composer
此假设您已全局安装 composer
composer require jennifer/steein-oauth2-laravel
2. 服务提供程序
如果已经添加,请从您的 config\app.php
中的 providers[]
数组中删除 Laravel\Socialite\SocialiteServiceProvider
。将 \SocialiteProviders\Manager\ServiceProvider::class
添加到您的 config\app.php
中的 providers[]
数组。例如
'providers' => [ // a whole bunch of providers // remove 'Laravel\Socialite\SocialiteServiceProvider', \SocialiteProviders\Manager\ServiceProvider::class, // add ];
3. 添加事件和监听器
将 SocialiteProviders\Manager\SocialiteWasCalled
事件添加到您的 <app_name>/Providers/EventServiceProvider
中的 listen[]
数组。将您的监听器(即来自提供程序的)添加到您刚刚创建的 SocialiteProviders\Manager\SocialiteWasCalled[]
。为此提供程序添加的监听器是 'SocialiteProviders\Steein\SteeinExtendSocialite@handle'
。
注意:除非您使用自己的提供程序覆盖它们,否则您无需为内置的社交ite 提供程序添加任何内容。
例如
/** * The event handler mappings for the application. * * @var array */ protected $listen = [ \SocialiteProviders\Manager\SocialiteWasCalled::class => [ // add your listeners (aka providers) here 'SocialiteProviders\Steein\SteeinExtendSocialite@handle', ], ];
4. 环境变量
如果您将以下环境值添加到您的 .env
文件中,您无需将条目添加到服务数组中。
将提供程序值追加到您的 .env
文件中
// other values above
STEEIN_KEY=yourkeyfortheservice
STEEIN_SECRET=yoursecretfortheservice
STEEIN_REDIRECT_URI=https://example.com/login/callback
添加到 config/services.php
。
如果您像以下所示将值添加到 .env 中,则无需添加此内容。以下值提供为方便开发人员无法使用 .env 方法的情况
'steein' => [
'client_id' => env('STEEIN_KEY'),
'client_secret' => env('STEEIN_SECRET'),
'redirect' => env('STEEIN_REDIRECT_URI'),
]
用法
现在您应该能够像通常使用 Socialite 一样使用它(假设您已安装外观)
return Socialite::with('steein')->redirect();
Lumen 支持
您可以使用 Socialite 提供程序与 Lumen 一起使用。只需确保您已启用外观支持,并且正确遵循设置说明。
注意:如果您使用 Lumen,则所有提供程序都将自动变为无状态,因为 Lumen 不跟踪状态。
此外,Lumen 中不能从 services[]
解析配置。您只能像本文件中精确显示的那样在 .env
文件中设置值。如果需要,您还可以覆盖配置(如下所示)。
无状态
您可以设置是否要使用提供程序作为无状态。请记住,OAuth 提供程序(Twitter、Tumblr 等)必须支持您选择的任何选项。
注意:如果您使用 Lumen,则所有提供程序都将自动变为无状态,因为 Lumen 不跟踪状态。
// to turn off stateless return Socialite::with('steein')->stateless(false)->redirect(); // to use stateless return Socialite::with('steein')->stateless()->redirect();