취미/프로그래밍

Laravel 이메일 인증 연동 구현하기

Anything Doing OK 2024. 9. 8. 05:53
반응형

회사에서 레거시만 사용하다보니 기능을 간단하게 구현할 수 있는 laravel 을 통해서 구현해보았다. 

 

진행하면서 발생한 오류 해결방안

에러 : php artisan migrate ( php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

해결방안 : docker container 내부로 접근 후 php artisan migrate  명령어 사용

https://stackoverflow.com/questions/33260172/sqlstatehy000-2002-php-network-getaddresses-getaddrinfo-failed-nodename-no

 

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

I keep this while running php artisan migrate SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known My Environment Laravel Framework

stackoverflow.com

 

우선 breeze 로 회원가입을 구현한 상태

 

https://green-bin.tistory.com/83

 

Spring - 이메일 인증 구현해보기 (랜덤 인증번호 보내기)

배경새로 시작하게 된 프로젝트에서 회원가입 중 이메일 인증을 하도록 했다.Spring에서 제공하는 API를 사용하면 생각보다 쉽게 구현할 수 있다. 나는 Google SMTP 서버를 이용해서 이메일 인증을 진

green-bin.tistory.com

해당 글 보면서 SMTP 설정하기

 

 

web.php에 해당 코드 추가

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');

 

Route::middleware(['auth', 'verified'])->group(function () {
    // 인증된 사용자만 접근 가능한 라우트
});

 

.env 에 

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com     # Gmail의 SMTP 서버 주소
MAIL_PORT=587                # Gmail SMTP 포트 번호 (TLS)
MAIL_USERNAME=test~~어쩌고~@gmail.com  # Gmail 사용자 이름 (이메일 주소)
MAIL_PASSWORD=받은 앱 배밀번호 띄어쓰기 없이 작성  # Gmail 앱 비밀번호 (Google 계정 보안 설정에서 생성한 앱 비밀번호)
MAIL_ENCRYPTION=tls          # 암호화 방식 (TLS 사용)
MAIL_FROM_ADDRESS=test~~어쩌고~@gmail.com  # 보낸 사람 이메일 주소
MAIL_FROM_NAME="${APP_NAME}"  # 보낸 사람 이름 (애플리케이션 이름 사용 가능)

로 작성

 

User.php 에 

class User extends Authenticatable 
코드 
class User extends Authenticatable implements MustVerifyEmail 
로 변경

 

이후  sail 종료 후 재실행

./vendor/bin/sail npm run dev 

npm 도 재실행

 

register

 

하고 REGISTER 하면 

 

전송하기

버튼 누르면  해당 메일로 인증 메일이 온 걸 알 수 있다.

 

버튼 누르면 인증된 사용자로 등록되고 인증된 페이지로 접근가능.

 

 

안되는 부분있으면 댓글 남겨주세요. 

반응형