andrewklau/socialite-openshift

Laravel Socialite 的 OpenShift OAuth2 提供程序

v2.0.2 2017-04-06 05:58 UTC

This package is auto-updated.

Last update: 2024-09-11 12:14:26 UTC


README

文档

此包使用了位于这里SocialiteProviders 包。

安装包

composer require andrewklau/socialite-openshift

安装服务提供者

  • 如果您已经添加了 Laravel\Socialite\SocialiteServiceProvider,请从 config\app.php 中的 providers[] 数组中移除。

  • \SocialiteProviders\Manager\ServiceProvider::class 添加到 config\app.php 中的 providers[] 数组。

安装事件监听器

  • SocialiteProviders\Manager\SocialiteWasCalled 事件添加到 <app_name>/Providers/EventServiceProvider 中的 listen[] 数组。

  • 为该提供程序添加的监听器是 'Andrewklau\Socialite\OpenShift\OpenShiftkExtendSocialite@handle',

例如

/**
 * The event handler mappings for the application.
 *
 * @var array
 */
protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // add your listeners (aka providers) here
        'Andrewklau\Socialite\OpenShift\OpenShiftExtendSocialite@handle',
    ],
];

环境变量

如果您按照以下方式将环境值添加到您的 .env 文件中,则不需要在服务数组中添加条目。

追加到 .env

// other values above
OPENSHIFT_URL=https://api.xyz.com
OPENSHIFT_CA=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
OPENSHIFT_OAUTH_CLIENT_ID=yourkeyfortheservice
OPENSHIFT_OAUTH_CLIENT_SECRET=yoursecretfortheservice

追加到 config/services.php

如果您按照上述方式将值添加到 .env,则无需添加。以下值作为方便开发者使用 .env 方法之外的另一种方法提供。

'openshift' => [
    'client_id'     => env('OPENSHIFT_OAUTH_CLIENT_ID'),
    'client_secret' => env('OPENSHIFT_OAUTH_CLIENT_SECRET'),
    'url'           => env('OPENSHIFT_URL'),
    'ca'            => env('OPENSHIFT_CA'),
    'redirect'      => env('APP_URL').'/login/callback',
],

创建 OpenShift oAuth 客户端

oc create -f <(echo '
kind: OAuthClient
apiVersion: v1
metadata:
 name: laravel
secret: "..."
redirectURIs:
 - "https:///login/callback"
grantMethod: prompt
')

用法

重定向到 OpenShift,并选择您想要访问的范围

return Socialite::with('OpenShift')->scopes()->redirect();

许可证

MIT