모바일 식권 서비스 만들기(5) - gem devise를 이용한 로그인 구현 ((Building a Mobile coupon for meal - Building sign up and sign in by using Devise gem)
모바일 식권 서비스 만들기(5) - gem devise를 이용한 로그인 구현 ((Building a Mobile coupon for meal - Building sign up and sign in by using Devise gem)
이제 개발을 시작하자. AWS c9, rails5를 이용해서 개발을 해보려고 한다. rails5 도 aws c9 도 처음이라 약간 걱정은 되는데 재밌는 경험이 되리라 생각한다.
일단 오늘 할 것은 프로젝트를 생성한 상태에서 메인 페이지을 만들고 Devise gem 을 이용해 로그인 기능을 구현하려고한다.
- 프로젝트를 안 만들었다면 프로젝트를 만들자. (참고 : Start AWS Cloud9 (3) - Start Ruby on rails(AWS c9 시작하기 - 루비 온 레일즈 시작하기)
- 만들었다면 home controller 와 index 페이지를 만들어주자.
rails g controller home index
- 그리고 routes.rb 파일에 들어가 root 를 설정해준다.
Rails.application.routes.draw do
root 'home#index'
get 'home/index'
end
- 그 다음 서버를 켜서 확인해보면 home/index.html 에 있는 내용을 확인할 수 있다.
- 그 다음 로그인 기능 구현을 위해 devise gem 을 구글에서 검색한 뒤 문서를 찾아서 devise gem 을 이용해보자.(참고 : https://github.com/plataformatec/devise)
- 간단하다. gemfile에 아래 사항을 추가한다.
gem 'devise' # 회원가입 & 로그인 기능
- 그 다음 명령 창에 bundle install 을 입력한다. 그럼 쭉 깔릴 것이다. 그 다음 중요한 것은 gem을 깔았을 경우 서버를 다시 껐다 켜줘야한다.
- 그 다음 명령창에 아래와 같이 친다.
rails generate devise:install
- 그럼 또 쭉 깔릴 것이다. 그 다음 “rails generate devise 모델 이름” 을 명령창에 입력한다.
rails generate devise User
- 그러면 migrate 폴더에 파일이 생성됐을 것이다. 거기서 추가적으로 User 모델에 attribute(속성)값을 추가하고 싶다면 추가할 수 있다. 해당 서비스를 만들기 위해 아래와 같이 추가했다.
t.string :user_type #사용자 타입
t.string :restaurant_name #식당 이름
- 그 다음 rake db:migrate 를 해주면 User 모델이 완성이 된다.
- 이제 확인하기 위해 view 폴더에 들어가 home/index.html.erb 파일에 아래와 같이 입력한다.
<% if user_signed_in? %>
<p>User email : <%= current_user.email %></p>
<p><%= link_to "Sign out", destroy_user_session_path, method: :delete, data: { confirm: "Are you sure?" } %></p>
<% else %>
<p><%= link_to "Sign in", new_user_session_path %></p>
<% end %>
- 그러면 회원가입, 로그인, 로그아웃을 할 수 있게 되었고 알림을 주기 위해선 application.html.erb 파일에 아래와 같은 코드를 입력한다.
<body>
<p class="notice"><%= notice %></p>
<%= yield %>
</body>
이렇게 간단하게 로그인 기능이 완성됐다.
댓글
댓글 쓰기