我正面临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,但这些数据都没有持续存在。
由于
答案 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
。