jennifer/steein-oauth2-laravel

适用于 Laravel Socialite 的 Steein OAuth2 提供程序

1.0 2017-07-24 08:44 UTC

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();