Laravel Socialite и Office365: InvalidArgumentException в строке Manager.php 90: Драйвер [microsoft] не поддерживается

Так что я определенно не могу обернуться вокруг этого. Я следую учебному пособию по Laravel 5.2 здесь.

http://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-facebook-login.html#.V2gUIrgrJPY

И получаю ошибку, указанную выше в заголовке. Мои маршруты выглядят так:

Route::get('/', function () {
if(Auth::check()) return view('auth/register');
return view('auth/login');
});

Route::get('/redirect', 'MailAuthController@redirect');
Route::get('/callback', 'MailAuthController@callback');

Контроллер выглядит так:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Socialite;

class MailAuthController extends Controller
{
//
public function redirect()
{
return \Socialite::with('microsoft')->redirect();
}

public function callback()
{
// when microsoft calls with token
}

public function user()
{

}
}

И services.php выглядит так:

<?php

return [

/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Stripe, Mailgun, Mandrill, and others. This file provides a sane
| default location for this type of information, allowing packages
| to have a conventional place to find your various credentials.
|
*/

'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
],

'mandrill' => [
'secret' => env('MANDRILL_SECRET'),
],

'ses' => [
'key' => env('SES_KEY'),
'secret' => env('SES_SECRET'),
'region' => 'us-east-1',
],

'sparkpost' => [
'secret' => env('SPARKPOST_SECRET'),
],

'stripe' => [
'model' => App\User::class,
'key' => env('STRIPE_KEY'),
'secret' => env('STRIPE_SECRET'),
],

'microsoft' => [
'client_id' => env('MICROSOFT_CLIENT_ID'),
'client_secret' => env('MICROSOFT_CLIENT_SECRET'),
'redirect' => env('http://localhost:8000/callback'),
],

];

И кроме этого я понятия не имею, где я могу пойти не так. Освети мой путь!

0

Решение

Я бы порекомендовал использовать Microsoft Graph провайдер из Социальные провайдеры пакет.

Подключите провайдера Microsoft-Graph через ваш composer.json файл:

"require": {
...

"laravel/socialite": "^2.0",
"socialiteproviders/microsoft-graph": "dev-master"},

Бежать composer update,

Затем добавьте учетные данные подключения к config/services.php:

...

'graph' => [
'client_id'     => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'client_secret' => 'xxxxxxxxxxxxxxxxxxxxxxx',
'redirect'      => 'https://my-app.dev',
],

* Примечание: при совершении config/services.php в публичный репозиторий, извлеките эти значения в файл .env и сослаться на них через вспомогательный метод env;

В config/app.php добавить SocialiteProviders/Generators поставщик услуг для providers массив:

'providers' => [
...

/*
* Package Service Providers...
*/
Laravel\Socialite\SocialiteServiceProvider::class,

// This is a dependency of the socialiteproviders/microsoft-graph provider, and will be installed with the provider via it's composer.json file
SocialiteProviders\Manager\ServiceProvider::class,

Зарегистрировать Socialize фасад (также в config/app.php):

'aliases' => [
...

'Socialize' => 'Laravel\Socialite\Facades\Socialite',

],

Зарегистрировать слушателя события в app/Providers/EventServiceProvider.php:

protected $listen = [
...

'SocialiteProviders\Manager\SocialiteWasCalled' => [
'SocialiteProviders\Graph\GraphExtendSocialite@handle'
],
];

Создайте свой контроллер для обработки запросов:

<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use Socialize;

class AuthController extends \App\Http\Controllers\Controller
{

/**
* Redirect the user to the Graph authentication page.
*
* @return Response
*/
public function redirectToProvider()
{
return Socialize::with('graph')->redirect();

}

/**
* Obtain the user information from graph.
*
* @return Response
*/
public function handleProviderCallback(Request $request)
{
$user = Socialize::with('graph')->user();

// $user->token;
}
}

Наконец добавьте ваши маршруты в routes/web.php:

<?php

Route::get('auth/graph', 'Auth\AuthController@redirectToProvider');
Route::get('auth/graph/callback','Auth\AuthController@handleProviderCallback');
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector