인생이 쓰다!인생쓰

개발/라라벨(PHP프레임워크)

Laravel 회원가입 (JetStream)/Livewire

Johnal 2021. 4. 8. 11:27
반응형

기존에 Laravel JetStream 에서 제공되고 있는 회원가입을 알아보려고 합니다.

 

라라벨 제트스트림

일단 여기서 나오는 라라벨 제트스트림은 디자인이 되있는 Laravel 용 애플리케이션 스타터 키트 라고 생각하시면 됩니다.

기본적으로 애플리케이션의 로그인,등록,이메일 확인, 2단계 인증 , 세션 관리등 API 및 선택적 팀 관리 기능에 대한 구현을 제공합니다. 

 

Tailewind css를 사용하여 설계되었고 Livewire와 Intetia 라는 두가지 프런트 앤드 스택중에서 사용할 수 있습니다.

두 스택마다 장점과 단점이 있는데 이건 나중에 또 알아보도록 하겠습니다.

 

Livewire

일단 저는 그나마 익숙한 Livewire를 사용해보려고 합니다. 

 

 

일단 라라벨 제트스트림을 사용하려면 프로젝트를 생성시에 

 

 

jet 생성

하고자하는 프로젝트명 뒤에 --jet를 사용하여 생성하시면됩니다. 이런식으로 사용하면 처음부터 livewire를 사용할수있습니다.

하지만 이렇게 처음 프로젝트를 생성안하고 Composer를 사용해 프로젝트를 생성했어도 livewire사용이 가능합니다.

 

 

jetstream livewire

이렇게 설치한후에 

npm dev

NPM종속성을 설치 및 빌드하고 데이터베이스를 마이그레이션 합니다. 

 

설치가 완료되고 설정이 완료되면 로그인 화면이 바뀌게되고 회원가입 후에 로그인을 하게 되시면 

 

 

로그인 화면

 

DashBoard

새로운 대쉬보드 화면을 확인할 수 있습니다.

 

 

 

기존 회원가입

보시면 이렇게 있는 기존회원가입 화면(Register)을 볼까요 

그럼 회원가입이 어떻게 돌아가는지를 확인하면서 올라가면 될거같네요.

 

일단 라라벨에서는 Blade라는 뷰파일을 사용합니다. 블레이드는 라라벨에서 제공하는 간단하지만 강력한 템플릿 엔진입니다.

블레이드에 대해서는 제가 따로 정리를 해서 올려드리겠습니다.

 

 

 

일단 라라벨 제트스트림 내부에서 동작하는 회원가입 라우트를 찾아가봅시다.

 

vender/laravel/fortify/routes/routes.php 에 회원가입 로그인 등 라우트가 되어있네요.

 

 

보시면 이걸 타고 들어와서 회원가입을 해준다는 내용같은데요.

데이터값들을 전송해야하니 POST를 이용해서 회원가입을 사용하겠죠.

 

그럼 라우트가 가리키는

RegisteredUserController 의 store로 가볼까요?

 

 

컨트롤러 안을 보니 뷰화면을 보여주는 create와 insert시켜주는 store로 나눠져 있네요.

 

 

라라벨에서는 이런식으로 REST의 목적을 따라가는 형식을보입니다. 

나중에 제 블로그에 REST에대해서 올려보겠습니다. 저도 이런형식은 알았지만 쓰는 이유는 그냥 보기편한줄로만 생각하다보니 ㅎㅎ

 

 

 

일단은 

store를 보시면 event라는 함수를 사용해 새로운 계정을 생성해주네요 그 생성해주는 함수안에서는

CreatesNewUsers라는 $creater를 쓰네요.  여기서 CreatesNewUsers는 인터페이스이고

 

이 인터페이스는 App/Actions/Fortify/CreateNewUser.php 라는 클래스를 implements하고있네요.

implements는 여러 interface를 가능하게 하고, 메소드는 이름과 반환형만 정의하며 실제 구현은 implements 한 클래스에서 구현합니다.

 

 

이제 클래스를 보실까요?? 

보기만해도 복잡하네요. 

 

Validator 유효성검사를 생성하는 것같네요.

 

array $input으로 입력값( $Request )를 받은후에 진행이 된후에 

 

트랜잭션메소드를 사용후에 User::create를 사용하는 방법입니다. 여기서 실제 쿼리문과 insert가 발생하네요. 

그리고 실제 생성후에 이제 다시 stroe로 돌아가 로그인하고 페이지로 돌아가는 실행이 도네요. 

 

라라벨을 처음 쓰시는 분들은 이처럼 JetStream 회원가입이 어떻게 동작하는지를 알고 가시면 좋을것같아서 작성하게 되었습니다.

저도 처음 공부하고 따라가는 부분이라서 제가 잘못이해한 부분이나 놓친 부분들이 있으면 꼭 댓글로 알려주시면 감사하겠습니다ㅠㅠ

 

다음에는 이 회원가입에 새로운 항목들을 추가해보고 작성해보면 좋을것같습니다 . 감사합니다. 

 

 

 

728x90
반응형