Devise를 사용한 간단한 로그인 기능 설치 방법

8067 단어 RubyRails

devise 기능이란 무엇입니까?


devise는 Rails의 일종의gem로 새로운 로그인과 로그인 기능을 간단하게 실현할 수 있습니다!
그럼 바로 시작합시다!
먼저 Gemfile에 이렇게 기술하십시오.

1. devise 다운로드

gem 'devise'
그리고 나서
$ bundle install
이렇게 하면 devise를 사용할 수 있다.
그리고 나서
$rails generate devise:install
create  config/initializers/devise.rb
create  config/locales/devise.en.yml
다음 파일을 생성합니다.
Some setup you must do manually if you haven't yet:

  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.

  2. Ensure you have defined root_url to *something* in your config/routes.rb.
     For example:

       root to: "home#index"

  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>

  4. You can copy Devise views (for customization) to your app by running:

       rails g devise:views

이런 순서대로 설정한다.
순서대로 설정했지만 이번에는 메일 설정을 하지 않기 위해 2부터 시작한다.

2.라우팅 설정


우선 2번입니다. 이것은 config/root입니다.rb에서 첫 번째로 날아가는 페이지의 경로를 설정하십시오.
config/root.rb
root 'home#top'
이 경우 홈 컨트롤러와 top 페이지를 만들어야 하는데 특별히 지정하지 않았습니다.
취향에 맞게 설정하세요.

3. Flash 메시지 설정


layouts/application.html
<!DOCTYPE html>
<html>
  <head>
    <title>DeviseFunction</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <p class="notice"><%= notice %></p>
    <p class="alert"><%= alert %></p>
    <%= yield %>
  </body>
</html>
이렇게 바디 아래에서 바로 Flash 메시지를 쓰십시오.
 <body>
    <p class="notice"><%= notice %></p>
    <p class="alert"><%= alert %></p>
이런 느낌이에요.

4.view의 제작

$ rails g devise:views
Running via Spring preloader in process 4789
      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 파일이 많이 생성됩니다.
view 파일에 devise 파일이 있습니다. 이렇게 하면 디자인을 터치할 수 있습니다.

5. User 모형의 제작

$ rails g devise User
invoke  active_record
      create    db/migrate/20190617072331_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
그러면 User 모형이 자동으로 만들어집니다.

6. User 테이블 작성


이전 User 모델을 만들 때도 동일한 마이그레이션 파일이 생성됩니다.
마이그레이션 파일은 테이블의 설계도입니다.너는 그것에 근거하여 탁자를 만들 수 있다.
$ rails db:migrate
이 명령을 입력하면
== 20190617072331 DeviseCreateUsers: migrating ================================
-- create_table(:users)
   -> 0.0027s
-- add_index(:users, :email, {:unique=>true})
   -> 0.0065s
-- add_index(:users, :reset_password_token, {:unique=>true})
   -> 0.0018s
== 20190617072331 DeviseCreateUsers: migrated (0.0124s) =======================
마이그레이션을 수행하고 양식을 작성합니다.
이렇게 되면 하마터면 다 할 뻔했다.

7. 확인


당장 일어나서 확인해봐.
rails로 일어나세요.
http://localhost:3000/users/sign_up
그러면

이렇게 서명 화면이 표시됩니다.
http://localhost:3000/users/sign_in
이번에는 이 링크를 열어보도록 하겠습니다.

이렇게 로그인 화면이 뜨면 성공이야.
이상
이것은 devise의 실현 방법이다.
상세한 설정을 알고 싶으신 분들은 devise의 공식 글을 참고하세요.
공식 문서 여기 있습니다.
https://github.com/plataformatec/devise

총결산


이번에 devise라는 gm를 사용하여 로그인 기능과 로그인 기능을 실현하였다.
빠르게 설정할 수 있어 편리하니 꼭 사용하세요.

좋은 웹페이지 즐겨찾기