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];