Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Ruby on Rails
Code

Аутентификация в Rails с использованием Clearance

Difficulty:BeginnerLength:ShortLanguages:

Russian (Pусский) translation by Marat Amerov (you can also view the original English article)

Clearance - это простая система аутентификации с электронной почтой и паролем, созданная командой Thoughtbot. Он имеет упрямые дефолты, но может быть легко переопределен. Система активно поддерживается, и вы можете следить за процессом разработки на GitHub.

В этом уроке вы увидите, как интегрировать приложение Clearance в Rails. Мы воспользуемся миниатюрным приложением. Давай начнем!

Начало

Начнем с создания Rails приложения. В целях этого урока я назову его tutsplus-clearance.

Это магая.

Вам понадобится бутстрап, чтобы ваше приложение выглядело хорошо. Добавьте Bootstrap гем в свой Gemfile.

Установите гем, выполнив bundle install.

Теперь измените application.scss так:

Установка Clearance

Откройте Gemfile, чтобы добавить гем Clearance.

Теперь установите гем.

bundle install

На этом этапе запустите команду генератора для установки clearance.

rails generate clearance:install

На вашем терминале будет вывод, который выглядят так, как показано ниже:

Когда вы запустили команду, в вашем приложении было создано несколько файлов. Один из таких файлов - clear.rb, который вы можете найти в каталоге config/initializers. Также была создана модель User, и вместе с этим у вас также есть файл миграции, который выглядит следующим образом:

Согласно выводу, первое, что вы захотите сделать, это отредактировать конфигурационную среду. Для этого перейдите в config/environment/development.rb и добавьте строку ниже, чуть выше  разделителя end.

Затем перейдите к config/initializers/clearance.rb, чтобы отредактировать его, и по  вашему усмотрению измените адрес электронной почты отправителя по умолчанию . Это то, что вы увидите при открытии файла.

Вы можете переопределить конфигурацию по умолчанию, вставив следующий фрагмент кода и настроив его под требования.

Запустите команду для миграции вашей базы данных.

rake db:migrate

Откройте ContactController и добавьте экшен index.

Затем создайте представление для только что созданного экшена index.

Добавьте фрагмент кода ниже:

Отредактируйте маршруты:

Создайте партиал с именем _navigation.html.erb внутри каталога layouts. Это будет использоваться для обработки всего, что связано с навигацией по вашему приложению.

Вставьте следующий код.

Ограниченный доступ

С помощью Clearance вы можете создавать ограниченный доступ к определенным страницам в своем приложении по вашему выбору. Давайте посмотрим, как это делается.

Создайте представление для  экшена new в app/views/pages, имя файла должно быть new.html.erb. Вставьте код ниже.

Теперь вам нужно добавить строку ниже в config/routes.rb.

Наконец, перейдите в свой PagesController, чтобы он выглядел как  у меня внизу.

В приведенном выше коде мы используем хелпер Clearance, require_login, чтобы ограничить доступ к экшену new. Чтобы узнать, как это работает, запустите сервер rails, запустив rails server с вашего терминала. Перейдите на http://locahost:3000/pages/new  должно произойти перенаправление на страницу входа.

Clearance также предоставляет ограничения маршрутизации, которые могут использоваться для контроля доступа.

В приведенном выше коде для аутентифицированных пользователей был создан другой маршрут.

Переопределение стандартных значений по умолчанию

Когда вы начинаете использовать Clearance, Многие вещи случаются за кулисами. Может прийти время, когда вы захотите настроить все по-своему, в зависимости от спецификации вашего приложения. Clearance позволяет вам переопределить конфигурацию по умолчанию, с которой поставляется.

Чтобы переопределить (или сгенерировать) маршруты, запустите эту команду с вашего терминала.

rails generate clearance:routes

Ваш файл маршрутов должен выглядеть следующим образом:

Команда также установит для параметра config.routes значение false в файле config/initializers/clearance.rb. Это означает, что будет создан только что созданный пользовательский файл.

Чтобы создать представления для изменения, выполните:

rails generate clearance:views

Некоторые из файлов, которые будут созданы, включают:

Вы увидите приглашение в своем терминале с просьбой перезаписать файл app/views/layouts/application.html.erb. Выберите нужный вариант.

Лайоуты

По умолчанию Clearance использует лайоут по умолчанию. Если вы хотите изменить лайоут, который использует Clearance при рендеринге его видов, просто укажите лайоут в инициализаторе.

Хелперы

Clearance предоставляет вам методы хелперов, которые могут использоваться в ваших контроллерах, представлениях и хелперах. Эти методы включают signed_in?, signed_out?, и current_user.Например:

Заключение

У Clearance есть много возможностей, когда дело доходит до аутентификации, поэтому не забудьте попробовать его в своем следующем проекте. Вы можете узнать больше, просмотрев страницу на GitHub.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.