0

Sentinel 2.0を新規インストールしたLaravel 5.2を使用しています。登録は正常に機能しますが、ログインしようとするとユーザーが返されますが、Cookieやセッションなどは設定されません..

アップデート1

現時点では、Cookie/セッションがまったく保存されていないことがわかりました。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) "$2y$10$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、セッション テーブルはログイン後も空のままです。Cookieも設定されていません。

4

3 に答える 3

1

同じ問題がありました。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']);
});

その後、期待どおりに機能しました。

于 2016-08-28T09:01:40.233 に答える
0

ここで、stackoverflow の別の回答で回答を見つけました。「Web」ミドルウェアを有効にする必要があります..ため息

彼らがそれをどこかに文書化してくれたらいいのに..

https://stackoverflow.com/a/34529550/775260

于 2016-01-06T18:12:29.837 に答える
0

The reason is that Sentinel uses Cookies/Sessions. If you want to use another middleware group than web make sure that it middleware for those are added to the group.

于 2019-11-21T20:23:39.657 に答える