디바이즈 젬으로 인증하기
Created by Piotr Steininger, @polishprince
Updated by Ernesto Jimenez, @ernesto_jimenez
앱 개발 가이드를 따라서 레일스 걸스 앱을 미리 만들어 두어야 합니다.
1.Add devise gem
Gemfile
파일을 수정합니다. 아래와 같이 젬을 추가합니다.
그리고 아래와 같이 실행합니다.
젬을 설치한 다음 레일스 서버를 꼭 다시 실행합니다.
2.Set up devise in your app
아래와 같이 터미널에서 명령어를 실행합니다.
3.Configure Devise
환경 설정 파일에서 기본 url 옵션을 정의해야 합니다. config/environments/development.rb
을 열어 아래와 같이 :
end
키워드 위에 추가합니다.
app/views/layouts/application.html.erb
파일을 아래와 같이 수정합니다:
위 코드를 아래 코드 위에 넣습니다.
app/views/ideas/show.html.erb
파일에서 아래와 같은 부분을 지우고 위에서 넣은 코드를 넣습니다:
app/views/comments/show.html.erb
파일도 마찬가지로 수정합니다. 파일마다 코드를 수정하지 않아도 app/views/layouts/application.html.erb
파일만 수정해도 됩니다.
4.Setup the User model
디바이즈 젬이 만들어둔 스크립트를 사용해서 사용자(User) 모델을 만들겠습니다.
Coach: 사용자(user) 모델이 생성한 것을 설명하세요. 필드는 무엇인가요?
5.Create your first user
사용자를 등록할 수 있는 모든 준비가 되었습니다. 디바이즈는 계정을 생성하고 로그인, 로그아웃하는 모든 코드와 라우드를 만들어줍니다.
레일스 서버를 실행하고, 브라우저로 http://localhost:3000/users/sign_up로 이동하면 사용자 계정을 생성할 수 있습니다.
6.Add sign-up and login links
다음으로 사용자가 로그인하는 링크와 알림 메시지를 네비게이션 바의 오른쪽 위에 넣겠습니다.
우선 app/views/layouts/application.html.erb
파일을 아래와 같이 수정합니다:
위의 코드를 아래 코드 아래에 넣습니다.
그런 다음 로그인하지 않았을 경우 사용자가 로그인 페이지로 이동하도록 app/controllers/application_controller.rb
파일을 아래와 같이 수정합니다:
위의 코드를 protect_from_forgery with: :exception
뒤에 붙여 넣습니다.
브라우저를 열어서 로그인과 로그아웃을 해봅니다.
Coach: user_signed_in?
과 current_user
헬퍼를 설명하세요. 헬퍼는 왜 유용한가요?
What next?
- 사용자(User) 모델에 필드를 더 추가합니다.
- 사용자와 아이디어의 관계를 추가합니다.
- 다른 사용자가 등록한 아이디어를 수정하거나 삭제하지 않도록 제한합니다.
- 권한과 역할(캔캔 CanCan처럼 유명한 인증 젬을 사용하여) 기능을 확장합니다.