Вопрос Rails: устанавливаем и конфигурируем devise

Больше
1 нед. 5 дн. назад - 1 нед. 5 дн. назад #1 от serge
serge создал эту тему: Rails: устанавливаем и конфигурируем devise
Ruby on Rails: устанавливаем и конфигурируем devise

1. Добавим гем в Gemfile:
gem 'devise'

и затем:
bundle install

2. Запускаем генератор:
rails generate devise:install

3. Конфигурим настройки мейлера для каждой из сред выполнения. Для среды разработки необходимо добавить следующую строку в файл config/environments/development.rb:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }

Для продакшн, соответственно, меняем значение ключа :host на актуальное.

4. Проверяем, что routes.rb содержит строчку:
root 'home#index'

или любую иную, в зависимости от того, куда вы хотите перенаправлять пользователя после входа в систему, например.

5. Добавим в application.html.erb:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>

6. Выполняем, если нужны вьюхи devise, которые затем можно изменить под свои стили:
rails generate devise:views

7. Создаем модель пользователя (или админа):
rails generate devise User

Описание модулей, отключить и подключить которые можно в app/models/user.rb (по дефолту подключаются 6 из них) :

  1. Database Authenticatable: предоставляет возможность входа в систему на основе зашифрованного и хранимого в базе данных пароля. Вход может быть выполнен посредством отправки POST-запроса или с помощью HTTP Basic Authentication.
  2. Omniauthable: добавляет поддержку Omniauth ( github.com/intridea/omniauth ).
  3. Confirmable: позволяет отправлять письмо с инструкциями для подтверждения аккаунта, созданного во время регистрации.
  4. Recoverable: позволяет восстанавливать забытый пароль. Отправляет инструкции по восстановлению на почту.
  5. Registerable: управляет регистрацией пользователей, позволяет редактировать и удалять аккаунты.
  6. Rememberable: позволяет запоминать пользователей на основе cookies. Управляет созданием и удалением токенов.
  7. Trackable: ведет статистику количества входов, учитывает время и IT-адреса.
  8. Timeoutable: отвечает за продолжительность сессии активности пользователя в системе.
  9. Validatable: предоставляет инструменты валидации e-mail и пароля. Модуль может быть легко настроен, вы можете определить собственные валидаторы.
  10. Lockable: блокирует аккаунт после указанного в настройках количество неудачных попыток авторизации. Аккаунт может быть разблокирован посредством email или через определенный период времени.


8. Добавляем во вьюху минимум линков:
<% if user_signed_in? %>
    <span>Здравствуйте, <%= current_user.email %></span>
    <%= link_to 'Выйти', destroy_user_session_path, :method => :delete %>
<% else %>
    <%= link_to 'Войти', new_user_session_path %> или <%= link_to 'Зарегистрироваться', new_user_registration_path %>
<% end %>

9. Защищаем наш контроллер следующим образом, добавив второй сверху (после class) строчкой:
before_action :authenticate_user!, except => [:show, :index]

или так, если хотим запретить неавторизованному пользователю все:
before_action :authenticate_user!

10.
rake db:migrate
rails s

Вроде как бы и все. В основном.

А я смогу! - А поглядим! - А я упрямый!
Последнее редактирование: 1 нед. 5 дн. назад от serge.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.