아래처럼 except를 함수로 써보시고
$this->middleware('checkauth')->except('login');
그래도 안되면 미들웨어 그룹에 해당 미들웨어가 등록되어있지는 않은지 확인해보세요
미들웨어 그룹에 등록되어있으면 미들웨어가 무조건 적용됩니다
$this->middleware('checkauth')→except('login');
해도 여전히 같은 상황이네요 ...
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
그룹창에도 설정되있는게 없는데 이상합니다 ㅠㅠ
감사합니다!!! 주신 힌트덕에 잘 해결됬어요 그룹이 문제였네요!!
아니면 아이에 routes/web.php에서
Route::group(['middleware'=>'checkauth'],function(){
//checkauth 를거치지 않는 다른 라우트들
});
이렇게 한번 해보시죠
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAuth
{
public function handle($request, Closure $next)
{
if(!auth()->check()){
return redirect(route('login'));
}
return $next($request);
}
}
로그인을 체크하는 미들웨어는 이렇게 코딩해놓고
protected $routeMiddleware = [
......
'checkauth' => \App\Http\Middleware\CheckAuth::class,
];
커널에 이렇게 등록했습니다
public function __construct()
{
$this->middleware('checkauth', ['except' => ['login']]);
}
그리고 원하는 컨트롤러에가서 로그인을 할수있게 로그인창을 로그인을 검사하는 미들웨어를 제외하고싶어서
위와 같이 코딩했는데
페이지가 작동하지 않습니다.
localhost에서 리디렉션한 횟수가 너무 많습니다.
ERR_TOO_MANY_REDIRECTS이런 에러가 나와서 로그인창으로 접속하면 미들웨어 검사가 제외되야 되는데 제외안되고 미들웨어가 작동되서 리다이렉션을 계속해서 나타나는 증상같습니다,,,, __construct 문법좀 확인해주실수있으세요?? 감사합니다