[devise gem] 로그인 기능 간단히 구현
[ 로그인 구현 ] - devise gem
환경 : c9 ( ruby on rails )
https://github.com/plataformatec/devise
대다수의 서비스가 로그인 기능을 devise gem으로 사용함.
1. Gemfile의 gem ‘devise’를 입력 후 ‘bundle install’
2. rails generate devise:install
3. 매뉴얼대로 model로 지정한 것을 수정하여 ‘user’로 수정.
* devise가 DB도 알아서 생성을 해줌.
4. rake db:migrate
5. ‘rake routes’ 를 이용하여 어떤 접근이 가능한지 확인.
6. 5번에서 /users/sign_in을 들어가서 보면 device gem이 알아서 조작을 하여 나타난 로그인 폼이다.
7. config – initializers – devise.rb에서 239줄 정도쯤에 delete를 get으로 변경한다.
* initializers폴더에 있는 루비 파일을 변경했을 경우, 무조건 서버를 재시작 해야한다. initializers는 서버가 처음 켰을 때만 실행되서 반영이 되기 때문이다. 매번 반영이 되지 않는다.
8. 로그인 되어있는지 안 되어있는지 확인해주는 소스.
컨트롤러에서 user_signed_in?을 unless와 사용하여 user가 로그인이 되어 있지 않다면, “/users/sign_in” 주소로 리다이렉션을 시킨다.
9. 현재 로그인이 되어있는 user를 찍어주는데 사용.
index.html.erb에 <%= current_user.email %>를 사용한다.
current_user의 email은 db-migrate폴더에 devise가 명시해주었다.
이메일에 로그인을 한 것을 볼 수가 있다.
10. 디자인을 바꾸고 싶을 때는 아래와 같이 사용한다.
실제 구현된 내용만 view로 views-devise경로에 다 찍어준다.
11. devise 설정이 완료되었으니, 사용자 입맛에 맞게 수정을 하면 된다.