• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

35강 미들웨어에서 인증 과정을 Auth클래스로 만들면, 어느 디렉토리에 둘까요?

23.05.29 00:35 작성 23.05.29 00:36 수정 조회수 139

0

35강 중간에 AuthMiddleware 클래스를 만드는 부분에서, 인증을 하는 부분을 따로 Auth클래스를 만들어서 할 수도 있다라는 내용이 잠깐 지나갑니다.

이때, Auth클래스는 어떤 디렉토리를 만들어서 두면 좋을까요? 유틸 디렉토리를 만들어서 둘까 했지만, Auth클래스를 유틸 클래스라고 하기엔 좀 모호한것 같아서요.

답변 1

답변을 작성해보세요.

0

안녕하세요. 강의를 다시 보니 제가 라라벨의 Auth 를 예로 들었네요.

예로 든 라라벨의 Auth 클래스의 사용법을 간단하게 살펴보겠습니다. 라라벨에서 Illuminate\Support\Facades\Auth 클래스는 사용자가 인증 기능을 쉽게 사용할 수 있도록 해주는 헬퍼 클래스로 사용됩니다. 그래서 내부의 구현과는 관계없이 사용자가 단순한 형태로 사용할 수 있는 형태입니다.

use Illuminate\Support\Facades\Auth;
 
if (Auth::check()) {
    // The user is logged in...
}

로그인도 Auth::attempt() 를 사용하여 간단하게 사용할 수 있습니다. 라라벨에서는 헬퍼 클래스를 지칭할 때 파사드(Facades)라는 개념을 사용하는데, 레거시 환경에서도 Auth 클래스를 단순한 헬퍼 클래스로 취급하여 Helpers 라는 네임스페이스 및 디렉토리에 위치시키는 것을 고려해볼 수 있습니다.

if (Auth::attempt($credentials)) {
    $request->session()->regenerate();

    return redirect()->intended('dashboard');
}

다만, 라라벨의 헬퍼 클래스는 개발자가 사용할 때 Auth::attempt()와 같은 형태를 나타내고 있지만, 내부적으로는 서비스 컨테이너 바인딩을 통해 AuthManager, StatefulGuard 와 같은 클래스와 인터페이스의 메서드를 프록시합니다. 이 부분은 라라벨에 대한 내용이므로 이 강의와는 무관한 이야기이기에 여기서 생략하겠습니다만, 아무튼 강의에서 예시를 든 부분은 코드에서 예를 든 것처럼 헬퍼 클래스로 취급하여 사용하는 것을 이야기합니다.