Sentinel::authenticate() 不起作用

Sentinel::authenticate() doesn't work

我正在使用 Laravel 5.2,全新安装 Sentinel 2.0,注册工作正常,但尝试登录 returns 用户,但没有设置任何 cookie 或会话或任何内容。

更新1

此时我发现 cookie/session 没有任何保存。我真的不明白为什么不推送 cookie。

AuthController.php

namespace App\Modules\Auth\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class AuthController extends Controller {

    public function getLogin() {
        return view("Auth::login");
    }

    public function postLogin(Request $request) {

        $credentials = [
            'email'    => $request->input('login_email'),
            'password' => $request->input('login_password'),
        ];


        if (\Sentinel::authenticate($credentials)) {
            return redirect('core/dashboard');
        }
    }

}

\Sentinel::check(); var_dump() 重定向前

object(Cartalyst\Sentinel\Users\EloquentUser)#188 (27) {
  ["table":protected]=>
  string(5) "users"
  ["fillable":protected]=>
  array(5) {
    [0]=>
    string(5) "email"
    [1]=>
    string(8) "password"
    [2]=>
    string(9) "last_name"
    [3]=>
    string(10) "first_name"
    [4]=>
    string(11) "permissions"
  }
  ["persistableKey":protected]=>
  string(7) "user_id"
  ["persistableRelationship":protected]=>
  string(12) "persistences"
  ["loginNames":protected]=>
  array(1) {
    [0]=>
    string(5) "email"
  }
  ["connection":protected]=>
  NULL
  ["primaryKey":protected]=>
  string(2) "id"
  ["perPage":protected]=>
  int(15)
  ["incrementing"]=>
  bool(true)
  ["timestamps"]=>
  bool(true)
  ["attributes":protected]=>
  array(9) {
    ["id"]=>
    int(1)
    ["email"]=>
    string(25) "test@dev.local"
    ["password"]=>
    string(60) "y$wXHwd6ubbHWWXU9CBI/7AOdDsHY.f7t8b1Kjem0m1ep7Ud.9M/4i6"
    ["permissions"]=>
    NULL
    ["last_login"]=>
    object(Carbon\Carbon)#192 (3) {
      ["date"]=>
      string(26) "2016-01-06 15:15:42.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(3) "UTC"
    }

有什么可能出错的想法吗?

.env 中,会话驱动程序设置为 database,并且会话 table 在登录后保持为空。也没有设置cookie。

我在 Whosebug 上的另一个答案中找到了答案。需要启用 'web' 中间件.. 叹息

希望他们能在某处记录下来..

有同样的问题。我不得不用网络中间件创建一个路由组

Route::group(['middleware' => 'web'], function() {
    Route::get('modules', ['uses' => 'ModuleController@index', 'as' => 'modules']);
    Route::get('modules/{name}', ['uses' => 'ModuleController@show', 'as' => 'modules.show']);
    Route::post('modules/{module}/publish', ['as' => 'module.publish', 'uses' => 'ModuleController@publish']);
    Route::post('modules/{module}/enable', ['as' => 'module.enable', 'uses' => 'ModuleController@enable']);
    Route::post('modules/{module}/disable', ['as' => 'module.disable', 'uses' => 'ModuleController@disable']);
});

然后按预期工作。

原因是Sentinel使用了Cookies/Sessions。如果您想使用除 web 之外的另一个中间件组,请确保将这些中间件添加到组中。