Login 만들기
이 글의 목표
Phoenix 인증 로직 생성기를 이용해서 Login 기능을 만든다.
인증 로직 생성
공식 문서
https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.Auth.html
위의 문서에서 Phoenix의 인증 로직 생성에 대한 설명을 볼 수 있다. 다음의 명령으로 인증 로직과 관련된 화면을 생성한다고 되어 있다.
mix phx.gen.auth Accounts User users
앞서 Post 생성 시에 사용한 명령과 비슷한데 Accounts라는 컨텍스트에 User라는 스키마를 만들고 DB테이블 이름으로 users를 사용한다는 의미이다.
실행 해 보기
명령을 실행 해 보면 LiveView를 사용할지 Controller만 사용할지 물어보는데 라이브 뷰는 다음에 써보려고 n을 선택했다. 그러고 나면 파일을 잔뜩 생성한다.
- Using Phoenix.LiveView (default)
- Using Phoenix.Controller only
Do you want to create a LiveView based authentication system? [Yn] n
....뭔가 잔뜩 만들기....
파일 생성이 끝나면 dependency를 추가로 설치하고 DB migration이 필요하다고 안내가 나온다. 또한 가입, 이메일 인증 등에 대한 설명도 보여준다.
Please re-fetch your dependencies with the following command:
mix deps.get
Remember to update your repository by running migrations:
mix ecto.migrate
Once you are ready, visit "/users/register" to create your account and then access "/dev/mailbox" to see the account confirmation email.
결과 살펴보기
- 우선
mix phx.server
로 서버를 실행시킨다. http://localhost:4000/
의 화면 오른쪽 위에 "Register" 버튼과 "Log in" 버튼이 생겨 있는 것을 볼 수 있다.http://localhost:4000/posts
화면에도 보인다.- Register버튼을 눌러보면 email과 password로 계정을 만들 수 있는 화면으로 넘어간다.
- email과 password를 입력해서 계정을 만들면 다시 메인 화면으로 넘어가는데 오른쪽 위에 방금 생성한 계정과 Settings, Log out 버튼이 표시되어 있다.
- 로그인 만들기 완료!