Laravel Email 검증

김윤수·2022년 11월 30일
0

laravel

목록 보기
3/15

이메일 검증

Laravel 9 에서는 기본 미들웨어가 3가지가 있다. (미들웨어의 기본개념은 필터링와 같다)

app/Http/Kernel.php 을 보면

  • auth : 로그인 되었는지
  • verified : 이메일 인증이 된 사용자인지
  • web : 여러가지 웹 관련 미들웨어들을 묶어 두었다(cookie, session, csrf, request 등등)

이들 중 이메일이 검증되었는지 확인하는 미들웨어를 찾으려면

# app/Http/Kernel.php
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,

미들웨어 내부 코드를 살펴보면 $request->user() instanceof MustVerifyEmail은 User Model을 반환하는데 기본 상태의 User 모델은 MustVerifyEmail의 인스턴스가 아니므로 작동하지 않는다.

#app/Models/User.php 
use Illuminate\Contracts\Auth\MustVerifyEmail;

class User extends Authenticatable implements MustVerifyEmail

이렇게 하면 해당 MustVerifyEmail의 인스턴스가 되었므로 미들웨어가 작동하게 된다.

이것도 디자인 패턴 같은데, 어떤 것인지는 잘 모르겠다.

이 기능은 그전부터 그러했을 수도 있지만, Laravel이 계속 업데이트를 하는 것을 보면서 점점 간결하면서 직관적이 되어 간다고 생각이 든다.

profile
안녕하세요

0개의 댓글