[Rails] devise 가져오기 방법

6677 단어 Railsdevise

입문


Qiita의 첫 투고입니다.초보자가 기재한 것이기 때문에 오류가 있을 수 있습니다.만약 시정이나 건의가 있으면 가르침을 주십시오.잘 부탁드립니다.
[환경]
  • macOS Catalina 10.15.7
  • Vagrant 2.2.4 (CentOS 7.1)
  • Ruby 2.5.7
  • Rails 5.2.4.4
  • devise 4.7.3
  • 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
    
  • 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
    
    
    예를 들어 로그인 화면의view
    app/views/devise/sessions/new.html.erb
    서명 화면의view
    app/views/devise/registrations/new.html.erb.
    이 파일들을 편집해서 디자인을 변경할 수 있습니다.

    참고 문헌


    이 글은 아래의 정보를 참고하여 집필하였다.
    Railsdevise 사용(rails5 버전)
    완전 입문!도대체 devise가 뭘 할 수 있을까요?
    [Rails] devise의 사용 방법을 파악하여 로그인 인증 기능을 구현하세요!

    좋은 웹페이지 즐겨찾기