Auth :: check()没有持久化Laravel 5.2

时间:2016-01-30 00:41:18

标签: php laravel authentication laravel-5.2

我正面临laravel 5.2的问题,

 public function authenticate()
    {
        $user = Auth::attempt(['email' => Input::get('email'), 'password' => Input::get('password')]);
        if (Auth::check()) {
            return redirect()->intended('default');
        } else {
            return 'wrong password or mail';
        }
    }

在authenticate()函数中,Auth :: check()为true。但是在我的Autthenticate Middleware中,它返回错误......

public function handle($request, Closure $next, $guard = null)
{
    if (!Auth::check()) { //Here Auth::check() is false
        return redirect()->guest('auth/login');
    }
    return $next($request);
}

我无法确定问题是什么或我做错了什么...... 我尝试使用Sessions,但这些数据都没有持续存在。

由于

3 个答案:

答案 0 :(得分:2)

我在Kernel.php中做了一些更改。

原始代码。

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];

修改为

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];

答案 1 :(得分:1)

在您的中间件而不是realm.where(MyRealmObject.class) .equalTo("state", "new") .findAll() .asObservable() .flatMap(new Func1<RealmResults<MyRealmObject>, Observable<MyRealmObject>>() { @Override public Observable<MyRealmObject> call(RealmResults<MyRealmObject> list) { return Observable.from(list); } }) .subscribe(new Action1<MyRealmObject>() { @Override public void call(final MyRealmObject object) { realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { // do any realm change } }); } }); 中使用Auth::check()

Auth::guard()

如果不起作用,请告诉我。

答案 2 :(得分:0)

如果您在Kernel.php中将中间件设置为$middleware,则应尝试设置为$middlewareGroups