【发布时间】:2017-02-27 08:54:49
【问题描述】:
我有新的 Laravel 5.1 发行版。
我开始的第一件事是扩展Guard 类以实现我自己的身份验证驱动程序。我对 Laravel 真的很陌生。所以,这就是我到目前为止所做的。
配置/auth.php
'driver' => 'crm',
Providers/AuthServiceProvider.php
public function boot(GateContract $gate)
{
Auth::extend(
'crm',
function ($app) {
$model = $app['config']['auth.model'];
$provider = new EloquentUserProvider($app['hash'], $model);
return new CrmGuard($provider, $app->make('session.store'));
}
);
}
目前,我已经有一个用户 ID,存储在会话数组中,我可以通过它访问它
session_start();
$_SESSION['user_id'];
但我想在会话管理中使用 Laravel 构建。
我正在尝试在我的CrmGuard 类中重写Guard 类的user 方法,我需要从会话中获取这些值,我正在尝试这样
$id = $this->session->get('user_id');
等等
session('user_id')
这是我在测试时尝试调用 user 方法的方式
Route::get('/', function () {
\Illuminate\Support\Facades\Auth::user();
//return view('welcome');
});
但它总是返回NULL,我做错了什么?谢谢。
【问题讨论】:
-
这条路由是否被
web中间件覆盖?您可以通过php artisan route:list快速查看。 -
它说我在使用
auth中间件,我能做什么? -
可能是因为我在路由中添加了 'middleware' => 'auth',因为我需要所有路由都是安全的,但是当我添加 'middleware' => 'web' 时,它会说
Class web does not exist -
似乎 'middleware' => 'web' 是 Laravel 5.2 的特性,而不是 5.1
标签: php session laravel-5.1