본문 바로가기

RUBY ON RAILS

devise를 이용한 회원 관리하기

안녕하세요 멋사3기 Kyunni입니다.

이번 강좌는 회원 관리하는 다양한 방법에 대해서 알아보는 시간이었습니다. 레일즈에서 제공하는 로그인 통합 기능인 devise와 비밀번호 찾기 기능, 그리고 웹서비스 내에서 문자를 보낼 수 있는 기능을 배우며, 본격적으로 서비스 내에서 회원들을 관리할 수 있는 관리자로서의 능력을 갖게 된 것 같습니다 :)


Devise

로그인 통합 기능을 한 번에 수행 가능하게 해주는 rails의 기능 입니다.

로그인부터 로그아웃, 회원가입, 비밀번호 찾기 등의 모든 기능들을 한 번에 제공해주기 때문에 기존의 세션을 이용해 로그인을 제어하던 방법보다 훨씬 쉽게 다룰 수 있게 됩니다.

# 프로젝트명: devise_test 컨트롤러명: home 액션명: index

사실 설명할 것도 없는 것이 위의 github의 매뉴얼을 그대로 하면, 우리들이 원하는 회원 관리 사이트가 생성이 됩니다. 로그인, 로그아웃, 회원가입 등의 액션도 만들어주기 때문입니다 .

devise를 시작하기 위해선 위의 순서로 차근차근 진행해주면 됩니다.

위의 세 가지의 명령어를 메뉴얼 대로 진행하고, 마이그레이트 파일을 확인해보면, 저절로 로그인 관련 코드들이 작성되어 있음을 확인해볼 수 있습니다. 참고로 모델명은 user로 지정해주었습니다.

마지막으로 위의 코드를 development.rb 파일에 넣어주면 모든 것이 끝납니다. 참고로 localhost자리에는 워크스페이스의 주소를, port에는 80으로 지정해주면 됩니다. 참고로, devise 자체가 전체를 통합한 model이기 때문에 rake db:migrate를 해주어야합니다.

본인의 root 경로에서 /users/sign_in 이라고 URL을 띄워보면, 우리가 만든 적도 없는 로그인 창이 뜨고 회원가입, 로그아웃 등의 창이 생성되어 있음을 확인할 수 있습니다.

그 외의 명령어들이나 활용 예는 깃헙에서 확인해볼 수 있을 겁니다.


rake routes

콘솔창 명령어 중 하나로 이 명령어를 내렸을 때, 현재 서버에서 접근 가능한 URL 경로 전체가 보여집니다.


비밀번호 찾기

비밀번호 찾기 버튼을 누르면, 이메일에서 확인 가능한 폼은 생성되지만, 실제로 이것이 구현되어 있지는 않습니다. 이 부분은 이전 포스팅에서 배운 mailgun을 통해서 진행이 가능합니다.

전 포스팅에서 진행한 대로 mailgun을 세팅해주기만 하면, 메일을 보낼 준비가 완료되기 때문에 'Send me reset password instructions'를 누르면, 바로 이메일이 전송됩니다.

View 변경

github을 보면, Configuring views라는 파트가 있습니다. 

위의 명령어를 내려주면, 뷰 카테고리에 강제로 devise 카테고리 아래 다양한 뷰들이 생성됩니다. CSS를 적용하거나 원하는 HTML 코드를 집어 넣어서 뷰의 수정이 가능합니다.