Php Laravel 5.4认证
我有一些问题: 首先,这是我的代码: AuthMiddleware.phpPhp Laravel 5.4认证,php,laravel,Php,Laravel,我有一些问题: 首先,这是我的代码: AuthMiddleware.php public function handle($request, Closure $next) { if (auth()->check()) { return $next($request); } else { if (auth()->viaRemember()) { return $next($request); }
public function handle($request, Closure $next)
{
if (auth()->check()) {
return $next($request);
} else {
if (auth()->viaRemember()) {
return $next($request);
}
}
return redirect()->route('auth.index');
}
AuthController.php
if (auth()->attempt(compact('email', 'password'), true)) {
return redirect()->route('dashboard');
}
Kernel.php
protected $routeMiddleware = [
'auth.check' => \App\Http\Middleware\AuthMiddleware::class,
]
routes.php
Route::group(['prefix' => 'auth'], function () {
Route::get('/', 'AuthController@index')->name('auth.index');
Route::post('login', 'AuthController@login');
});
Route::group(['middleware' => 'auth.check'], function () {
Route::get('dashboard', function () {
return view('front.welcome');
})->name('dashboard');
});
问题是:
expire\u on\u close:true
on
会话文件)页面将重定向到/login
,而不是
/auth
。我找不到将我重定向到/login
的代码。有解决办法吗在关闭时过期:false
。是的,它正在工作,但每次我运行auth()->vialemory()
时,它总是返回false。有什么建议吗我的会话使用文件。1-检查
app/Exceptions/Handler.php
这就是重定向到登录的地方。函数名是未经身份验证的()
2-当用户返回网站时,只要执行
Auth::check()
或Auth::vialemored()
就可以了。您检查了中间件吗?它重定向到登录到那里guess@SaravananSampathkumar我只将自定义中间件auth.check
应用于路由。我没有看到任何代码将我重定向到我的middlewareHi登录,是的!!这就解决了问题。。为什么输入exception而不是我的中间件?我猜这是因为您使用的是Auth
,因此在出现异常时,它总是重定向到那里。如何应用remember me(记住我)我应该为expire\u on\u close设置什么值?将expire\u on\u close
的值设置为false
。遗憾的是,记住我的函数从不工作。我关闭浏览器,然后尝试重新打开浏览器。它总是让我退出。而不是吃记忆饼干
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest('login'); //HERE
}