"MustBeAdmin"및 "MustBeUser"라는 미들웨어를 만들어서 사용자 로그인에 따라 올바른 페이지로 리디렉션하고 권한이없는 콘텐츠를 제한하는지 확인했습니다. 현재 모든 것이 잘 작동하고 잘 리디렉션됩니다. 그러나 내가 현장에서 쓴 논리는 나에게 틀린 것처럼 보인다. 그리고 이상하게도 여전히 작동한다. 나는 적어도 나에게 맞는 논리를 쓰면 예상대로 작동하지 않는 것 같다.Laravel 5.4 관리자와 사용자 역할을위한 미들웨어
사용자 테이블
id (1,2,3,...)
name
role (1,2,3,...)
역할 테이블
id (1,2,3,...)
role (Student, Admin,...)
MustBeAdmin 미들웨어
public function handle($request, Closure $next)
{
if($request->user()->role == 2)
{
return $next($request);
}
else
{
return redirect('/admin/users');
}
}
MustBeUser 미들웨어 :
public function handle($request, Closure $next)
{
if($request->user()->role == 1)
{
return $next($request);
}
else
{
return redirect('/admin/users');
}
}
kernel.php
'admin' => \App\Http\Middleware\MustBeAdmin::class,
'user' => \App\Http\Middleware\MustBeUser::class,
당신은 내가 커널에서 미들웨어를 등록 볼 수 있듯이.
내가 원하는 결과를 얻고 있지만 미들웨어의 논리가 맞는지 의심 스럽습니까? 사용자 역할 1 (학생) 인 경우
1 = Student
2 = Admin
당신이 다음 ($ 요청을) 할 사용자 역할이 (관리자) 인 경우 내가 비교하고 MustBeAdmin 미들웨어에서 볼 경우 MustBeUser 미들웨어에서 나는 다음 (다음에 무엇을 비교하고 $ request) 그리고/Admin 디렉토리에 else를 설정합니다.
내가 잘못 생각합니다. 어떻게 생각하십니까?
둘 다 왜 같은 페이지로 리디렉션됩니까? 관리자와 사용자 외에 세 번째 엔티티가 있습니까? 누가 관리자/사용자로 리디렉션됩니까? –