andrewklau/socialite-openshift

OpenShift OAuth2 Provider for Laravel Socialite

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

README

Documentation

This package makes use of the SocialiteProviders package located here.

Install the package

composer require andrewklau/socialite-openshift

Install the Service Provider

  • Remove Laravel\Socialite\SocialiteServiceProvider from your providers[] array in config\app.php if you have added it already.

  • Add \SocialiteProviders\Manager\ServiceProvider::class to your providers[] array in config\app.php.

Install the event listener

  • Add SocialiteProviders\Manager\SocialiteWasCalled event to your listen[] array in <app_name>/Providers/EventServiceProvider.

  • The listener that you add for this provider is 'Andrewklau\Socialite\OpenShift\OpenShiftkExtendSocialite@handle',.

For example:

/**
 * 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',
    ],
];

Environment variables

If you add environment values to your .env as exactly shown below, you do not need to add an entry to the services array.

Append to .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

Append to config/services.php

You do not need to add this if you add the values to the .env exactly as shown above. The values below are provided as a convenience in the case that a developer is not able to use the .env method

'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',
],

Create OpenShift oAuth Client

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

Usage

Redirect to OpenShift with the scopes you want to access:

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

License

MIT