【问题标题】:Laravel 5.1 Sessions not workingLaravel 5.1 会话不起作用
【发布时间】: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


【解决方案1】:

Laravel 的会话驱动程序与 PHP 会话有一点不同,所以它不会以这种方式工作:

session_start();
$_SESSION['user_id'];

它由 deafualt 存储在文件(服务器端)中(您可以更改此驱动程序),并仅公开(向客户端)请求。不要使用 PHP 会话,而是使用带有 \Session::get()Session::put() 的 Laravel 的会话内置驱动程序,您可以在此处阅读:

https://laravel.com/docs/5.1/session

【讨论】:

  • 对不起,如果我不够清楚,但我需要使用php 会话机制,因为'user_id' 值是由另一个应用程序提供的,而不是我通过 Laravel 本身创建的东西
  • 什么意思:“因为'user_id'值是由另一个应用程序提供的”?如果这来自另一个应用程序,那么您将永远无法获得正确的会话 cookie。它是否是 Laravel 并不重要。
  • 嗯,是的,这似乎很奇怪。我有自定义 Web 应用程序,在其中添加了一个 Laravel 项目(只是将 Laravel 目录放入自定义应用程序的根目录中)。这就是我所拥有的。我可以在我的 Laravel 项目中通过$_SESSION['user_id']; 访问自定义应用程序提供的会话值。但无论如何,您的回答很有帮助,现在我发现这是我获得这些值的唯一现有方式。
猜你喜欢
  • 2016-05-02
  • 1970-01-01
  • 2015-06-03
  • 2018-07-02
  • 2016-01-28
  • 2016-10-20
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多