- [Michael Hartl의 Rails tutorial][railstutorial] 에 나온 user login 기능 부분을 정리해 본다.
- User model 생성
rails generate model User name:string email:string
- Validation 추가
- Email에 대해 index 추가
rails generate migration add_index_to_users_email
- Password 추가(1)
- User 모델에
has_secure_password
추가
- method는 hashed password를 password_digest라는 attribute에 저장하도록 해준다.
- password 와 password_confirmation 두 virtual attributes를 사용하게 한다.
authenticate
method로 password가 맞는지 틀린지 알 수 있다.
- Password 추가(2)
- password_digest attribute 추가
$ rails generate migration add_password_digest_to_users password_digest:string
Gemfile
에 bcrypt 추가
has_secure_password
에서 bcrypt
hash function을 이용한다.
- Password validation 추가
- 최소 길이 6자
validates :password, presence: true, length: { minimum: 6 }
- Route.rb에 routing 추가
- User Controller(1)
rails generate controller Users
new
method
- User Controller(3)
+
strong parameter
추가
- User Controller(5)
new.html.erb
에 error message 추가
- proudction 환경에서 SSL 추가
- Heroku domain(appname.herokuapp.com)에서는 별도의 SSL setting이 필요없음.
- Session Controller(1)
rails generate controller Sessions new
- Session Controller(2)
- Router에 log-in 관련 routing 추가
- Session Controller(3)
/sessions/new.html.erb
에 log-in form 추가
- Session Controller(4)
create
method
flash.now
는 flash
와 다르게 추가적인 reqeust가 있을 시 사라짐.
- ApplicationController에 SessionHelper 추가
app/helpers/sessions_helper.rb
- Session Controller(6)
destroy
method에 logout 추가
+ [railstutorial]: https://www.railstutorial.org/book/_single-page