【Rails】devise로 로그인 기능 구현
4933 단어 haml-railsRailsdevise
소개
devise의 도입 순서에 대해 설명합니다.
devise는 로그인 기능을 구현할 수 있는 라이브러리로 매우 유용합니다. devise에 대해 하지 않는 사람이나, 알고 있는 사람이라도 도입 순서에 자신이 없는 사람등의 참고가 된다고 생각합니다.
devise 설치
먼저 gem 파일에 devise를 추가합시다.
Gemfilegem 'devise'
잊지 않고 bundle install 해 둡니다.
터미널$ bundle install
그런 다음 devise를 설치합니다.
터미널$ rails g devise:install
bundle install과 devise의 설치가 필요하므로 주의합시다!
설치를 잊고 다음으로 진행하면 마이그레이션이 실패하고 조금 번거로울 수 있습니다.
그렇다면 아래 링크를 참고하여 해결하십시오.
htps : // 이 m / 펜구인 _에서 / ms / 93b00c09c0입니다 1f1 오 0 오 b
사용자 모델, 사용자 테이블 만들기
터미널$ rails g devise user
이 명령은 마이그레이션 파일을 작성하고 devise에 대한 라우팅을 구성합니다.
Users 테이블에 추가하는 열이 있는 경우는 이 단계에서 마이그레이션 파일에 기술해 마이그레이션시켜 두는 것이 좋습니다.
(나중에 추가할 경우 변경을 위한 마이그레이션 파일을 만듭니다.)
xxxxxxxxxxxxxx.devise_create_users.rb# マイグレーションファイル
class DeviseCreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
## Database authenticatable
t.string :name, null: false # 追加
t.string :email, null: false, default: "" # デフォルトで記載あり
t.string :encrypted_password, null: false, default: "" # デフォルトで記載あり
t.integer :group, null: false # 追加
# (略)
end
# (略)
end
마이그레이션 파일의 내용을 확인한 후 마이그레이션합니다.
터미널$ rails db:migrate
화면 확인
User 모델을 만들 때 라우팅이 마음대로 설정되어 있으므로 터미널에서 rails routes
라고 쳐 확인해 봅시다.
sessions가 로그인·로그아웃에 관한 것으로, registrations가 신규 등록·편집·삭제에 관한 것 정도로 생각해 두면 OK입니다.
시험에 신규 등록 화면을 살펴 보겠습니다.
registrations의 new가 신규 등록 페이지의 액션이므로 해당하는 URI를 지정해 액세스합니다.
로컬 서버를 시작하고 브라우저에서 http://localhost:3000/users/sign_up
에 액세스해 봅시다.
제대로 신규 등록 화면이 표시되었습니다.
뷰 파일
초기 설정 그대로는 살 풍경 너무이므로, 여러가지 장식하고 싶을까 생각합니다.
하지만 뷰파일을 찾아도 해당하는 것이 없습니다. (어쩌면 어딘가에 숨어있다)
그래서 뷰 파일을 표시해야합니다. 이것은 터미널에서 다음과 같이 입력하면됩니다.
터미널$ rails g devise:views
이제 app/views/devise
아래에 다양한 뷰 파일이 표시됩니다.
신규 등록 화면은 app/views/devise/registrations/new.html.erb
, 로그인 화면의 뷰는 app/views/devise/sessions/new.html.erb
가 대응하고 있습니다.
기타
devise를 도입하면 몇 가지 편리한 메소드를 사용할 수 있게 됩니다.
우선 다음의 2개는 기억해 두어 좋을까 생각합니다.
user_signed_in?
로그인 상태인가 어떤가를 판정하는 메소드입니다. 로그인하면 true, 그렇지 않으면 false를 반환합니다.
if의 조건으로, 로그인하지 않으면 로그인 페이지로 리디렉션시키는 등과 같이 사용할 수 있습니다.
current_user
로그인한 user의 active record를 리턴합니다.
마이 페이지의 path를 지정할 때 어쨌든 current_user.id
그렇다면, 로그인하고 있는 user의 id를 돌려주므로 편리합니다.
마지막으로
이것만의 조작으로 신규 등록이나 로그인등의 기능을 구현할 수 있는 것은 너무 편리합니다.
devise의 도입은 하나의 앱 제작으로 1회 밖에 하지 않기 때문에, 순서를 기억해 두는 것은 어렵다고 생각합니다. 도입시에는 이 기사를 참고로 받을 수 있으면 다행입니다.
Reference
이 문제에 관하여(【Rails】devise로 로그인 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/koki_73/items/86e5808e7dae78c3c564
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'devise'
$ bundle install
$ rails g devise:install
$ rails g devise user
# マイグレーションファイル
class DeviseCreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
## Database authenticatable
t.string :name, null: false # 追加
t.string :email, null: false, default: "" # デフォルトで記載あり
t.string :encrypted_password, null: false, default: "" # デフォルトで記載あり
t.integer :group, null: false # 追加
# (略)
end
# (略)
end
$ rails db:migrate
$ rails g devise:views
Reference
이 문제에 관하여(【Rails】devise로 로그인 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koki_73/items/86e5808e7dae78c3c564텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)