Laravel 5.2 Ввести данные сеанса входа в базу данных на пользовательском auth

У меня есть пользовательский авторизационный вход в laravel 5.2, моя конфигурация для пользовательского входа -

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'provider' => [
            'driver' => 'session',
            'provider' => 'providers',
        ],
    ],

У меня есть два auth-контроллера: One - это laravel AuthController, а другой - ProviderAuthController. Я установил базу данных SESSION_DRIVER = в моем env, а также создал таблицу сеансов в моей базе данных. Я получаю сеансы из веб-входа, но проблема в том, что я не могу получить сеансы для входа в систему. Есть ли способ обхода, чтобы вставить сеанс в логин провайдера.

В моем провайдере приложений нет ничего.

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    //
}

/**
 * Register any application services.
 *
 * @return void
 */
 public function register()
 {
    //
 }
}

Маршрут для моего провайдераAuthcontroller   Route:: group (['prefix' = > 'provider'], function() {

Route::get('login', 'Auth\[email protected]');
Route::post('login', 'Auth\[email protected]');
Route::get('logout', 'Auth\[email protected]');

// Registration Routes...
Route::get('register', 'Auth\[email protected]');
Route::post('register', 'Auth\[email protected]');

// Password Reset Routes...
Route::get('password/reset/{token?}', 'Auth\[email protected]');
Route::post('password/email', 'Auth\[email protected]');
Route::post('password/reset', 'Auth\[email protected]');

Ответ 1

Предполагалось, что это произойдет в средах, а не у поставщиков.

Route::get('profile', function () {
    // Only authenticated users may enter...
})->middleware('auth');

и

class Auth
{
  public function handle(\Illuminate\Http\Request $request, Closure $next)
  {
    if(!$request->session()->get('authenticated'){
      throw AuthException();
    }
    return $next($request);
  }
}

Также проверьте жизненный цикл laravel.

Ответ 2

Я использовал этот код, чтобы получить сеанс (просто сделав R & D в это время). Я думаю, что это может сработать для вас хорошо.

    $req = $request->session()->all();
    $req = collect($req);
    $req = $req->filter(function($item,$key){
        return strripos($key,'web_');
    });
    $key =  $req->keys()->first();
    $session = explode('login_web_', $key)[1];