php - laravel 5.2 将登录 session 数据插入自定义身份验证的数据库

标签 php mysql laravel laravel-5.2

我在 laravel 5.2 中有一个自定义身份验证登录,我的自定义登录配置是

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

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

我有两个身份验证 Controller ,一个是 laravel AuthController,另一个是 ProviderAuthController。我已经在我的环境中设置了 SESSION_DRIVER=database 并且还在我的数据库中创建了一个 session 表我正在从 Web 登录获取 session ,但问题是我无法在提供者登录时获取 session 。是否有任何解决方法可以在提供者登录时插入 session 。

我的应用服务商里面什么都没有

<?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()
 {
    //
 }
}

providerAuthcontroller 的路由是 Route::group(['prefix' => 'provider'], function(){

Route::get('login', 'Auth\ProviderAuthController@showLoginForm');
Route::post('login', 'Auth\ProviderAuthController@login');
Route::get('logout', 'Auth\ProviderAuthController@logout');

// Registration Routes...
Route::get('register', 'Auth\ProviderAuthController@showRegistrationForm');
Route::post('register', 'Auth\ProviderAuthController@register');

// Password Reset Routes...
Route::get('password/reset/{token?}', 'Auth\ProviderPasswordController@showResetForm');
Route::post('password/email', 'Auth\ProviderPasswordController@sendResetLinkEmail');
Route::post('password/reset', 'Auth\ProviderPasswordController@reset');

最佳答案

它应该发生在中间件中,而不是提供者中。

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 lifecycle .

关于php - laravel 5.2 将登录 session 数据插入自定义身份验证的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48140332/

相关文章:

php - 如何在Laravel中的unionAll之后将group by添加到 Eloquent 查询中?

laravel - 如何在 Controller 中获取 User()->id (Laravel 8+)

javascript - 如果下拉菜单改变,金额也会改变 PHP+JS

php - 空白/空搜索表单字段

mysql - 我们如何使用 MySQL 单个查询获得多列计数(TOP)?

MySQL 连接表

php - 有没有办法在 PHP 中扩展特征?

php - 大 cvs 文件上的 fgets 错误

php - Apache 日志行太长

新闻存档的 PHP/MYSQL 年月表