[Rails] devise 가져오기 방법
입문
Qiita의 첫 투고입니다.초보자가 기재한 것이기 때문에 오류가 있을 수 있습니다.만약 시정이나 건의가 있으면 가르침을 주십시오.잘 부탁드립니다.
[환경]
devise
devise는gem로 웹 응용 프로그램의 인증 기능을 쉽게 실현할 수 있습니다.인증 기능이란 간단하게 말하면 로그인과 로그아웃 기능이다.사용자 정보를 처리하기 위해 안전에 대한 불안, 작업 시간이 많아지는 등 1에서 만들어진 일이 심각하다.devise를 사용함으로써 상술한 문제를 해결하고 인증 기능의 실현을 간소화할 수 있다.
devise 배포
1.gem 설치
Gemfile에는 다음과 같은 내용이 있습니다.
Gemfile
gem 'devise'
저장한 후 응용 프로그램이 읽을 수 있도록 다음 명령을 입력하십시오.단말
$ bundle install
설치가 완료되었습니다.2.devise의 초기 설정
그리고 다음 명령을 입력하여 devise의 초기 설정을 진행합니다.
단말
$ rails g devise:install
다음 화면을 표시하면 성공합니다.단말
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================
Depending on your application's configuration some manual setup may be required:
1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
In production, :host should be set to the actual host of your application.
* Required for all applications. *
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
* Not required for API-only Applications *
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
* Not required for API-only Applications *
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
* Not required *
===============================================================================
겸사겸사 말씀드리지만, 제가 devise를 사용하기 시작했을 때, 이 초기 설정을 몇 번 건너뛰어서 오류가 발생했습니다.만약 순조롭지 않다면 초기 설정을 했는지 확인할 수 있다.3. 로그인 화면 표시
devise 기능을 사용하여 사용자 모델을 만듭니다.
모델 이름이 다르려면 사용자 섹션을 모델 이름으로 설정합니다.
일반적인 모형을 만들 때와 달리 rails g devise 모형 이름입니다.
단말
$ rails g devise User
다음 화면을 표시하면 성공합니다.단말
invoke active_record
create db/migrate/20201103032107_devise_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
insert app/models/user.rb
route devise_for :users
생성된 마이그레이션 파일을 가져옵니다.이른바 이전 파일이란 간단하게 말하면 표의 설계도이다.위 화면의 두 번째 줄db/migrate/창설 연월일 시간 분초_devise_create_users.rb는 이전 파일입니다.
단말
$ rails db:migrate
다음 화면을 표시하면 성공합니다.단말
== 20201103032107 DeviseCreateUsers: migrating ================================
-- create_table(:users)
-> 0.0046s
-- add_index(:users, :email, {:unique=>true})
-> 0.0014s
-- add_index(:users, :reset_password_token, {:unique=>true})
-> 0.0014s
== 20201103032107 DeviseCreateUsers: migrated (0.0076s) =======================
이 때devise의 배치가 완료되었습니다.다음 URL을 통해 로그인 화면에 액세스할 수 있습니다.(각 화면의 URL은 rails routes 명령을 통해 확인할 수 있습니다.)/users/sign_in
지원
devise 설정 확인
설치가 완료되면 config/routes.루트가 rb에 자동으로 추가됩니다. devise를 사용할 때의 URL은users를 포함합니다.
config/routes.rb
devise_for :users
또한 app/models/user.다음 설명은 rb에 추가됩니다.기본적으로devise의 기본 기능을 설명합니다.app/models/user.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
데이터베이스에 저장된 암호의 정확성을 검증하고 암호화합니다
사용자 로그인, 편집, 삭제 기능
암호 재설정
로그인 정보를 저장합니다.로그인 상태를 유지하는 기능입니다
이메일과 비밀번호 인증을 추가합니다
로그인 화면 사용자 정의
다음 명령을 실행하여 뷰를 만듭니다.
단말
$ rails g devise:views
다음 화면을 표시하면 성공합니다.단말
invoke Devise::Generators::SharedViewsGenerator
create app/views/devise/shared
create app/views/devise/shared/_error_messages.html.erb
create app/views/devise/shared/_links.html.erb
invoke form_for
create app/views/devise/confirmations
create app/views/devise/confirmations/new.html.erb
create app/views/devise/passwords
create app/views/devise/passwords/edit.html.erb
create app/views/devise/passwords/new.html.erb
create app/views/devise/registrations
create app/views/devise/registrations/edit.html.erb
create app/views/devise/registrations/new.html.erb
create app/views/devise/sessions
create app/views/devise/sessions/new.html.erb
create app/views/devise/unlocks
create app/views/devise/unlocks/new.html.erb
invoke erb
create app/views/devise/mailer
create app/views/devise/mailer/confirmation_instructions.html.erb
create app/views/devise/mailer/email_changed.html.erb
create app/views/devise/mailer/password_change.html.erb
create app/views/devise/mailer/reset_password_instructions.html.erb
create app/views/devise/mailer/unlock_instructions.html.erb
예를 들어 로그인 화면의viewapp/views/devise/sessions/new.html.erb
서명 화면의view
app/views/devise/registrations/new.html.erb.
이 파일들을 편집해서 디자인을 변경할 수 있습니다.
참고 문헌
이 글은 아래의 정보를 참고하여 집필하였다.
Railsdevise 사용(rails5 버전)
완전 입문!도대체 devise가 뭘 할 수 있을까요?
[Rails] devise의 사용 방법을 파악하여 로그인 인증 기능을 구현하세요!
Reference
이 문제에 관하여([Rails] devise 가져오기 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kiz_/items/4b67b3b4c1dcf03c9627텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)