Легкая аутентификация

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

Вы можете создать механизм аутентификации самостоятельно, но вам придется решать проблемы безопасности, например, как зашифровать пароль, как сгенерировать «токен забытого пароля» или как сохранить сторонний токен при интеграции с другими учетными записями в социальных сетях. Или вы можете подумать, какую модель использовать для хранения данных пользователя - будет ли модель User достаточно или нам нужно разделить User и UserProfile. модели? и будет ли кому-то легко поддерживать ваш код, когда вы уйдете или увеличите масштаб в будущем 🧐

Вот почему разработчики ROR должны использовать Devise, гибкое решение для аутентификации для Rails с Warden, как они утверждали.

Devise - одна из библиотек, которые я чаще всего использовал в каждом проекте. Это легко и просто, документация хороша, на Stackoverflow много QA, и она охватывает все основные функции, которые нам нужны на нашем веб-сайте.

Он стабилен, и вам не нужно слишком беспокоиться о проблемах безопасности, потому что они следовали стандартным моделям и функциям, как и должно быть. И, конечно же, это быстро - вы можете создать систему членства за 5 минут 🤩

Итак, приступим.

1. Создание нового проекта ROR

Чистый старт с новой командой Rails [название проекта], простой как rails new simple_auth . Затем укажите на свой проект и запустите сервер с помощью rails s , чтобы проверить, все ли в порядке .

2. Установите Devise и настройте его.

Откройте Gemfile файл в корневом проекте с помощью вашего любимого редактора, затем поместите gem ‘devise’ в конец файла или над group :development, :test do и запустите bundle install

Затем вам нужно заняться мелочами с их генератором конфигурации, запустить rails generate devise:install, чтобы создать конфигурацию по умолчанию для вашего веб-сайта. Devise перечислит небольшую заметку, которая поможет нам начать, и вы сможете выполнить их действия.

Кроме того, вы можете запустить rails g devise:views, чтобы Devise скопировала шаблон представления по умолчанию в ваше приложение, чтобы впоследствии было легко настроить или изменить стиль, чтобы он соответствовал вашему собственному дизайну. После выполнения этой команды будет создано множество файлов просмотра, включая шаблон электронной почты, который вы можете вручную изменить в будущем.

Теперь, когда у нас есть главная страница, давайте займемся бэкэнд-работой.

Запустите rails generate devise User, чтобы позволить им создать модель пользователя и установить некоторые необходимые маршруты.

Наконец, запустите rails db:migrate, чтобы перенести изменения.

После перезапуска сервера вы можете перейти на http: // localhost: 3000 / users / sign_in, чтобы увидеть нашу страницу входа, и http: // localhost: 3000 / users / sign_up, чтобы зарегистрировать новую учетную запись. Итак, давайте попробуем создать новую учетную запись.

Оно работает! после нажатия на кнопку регистрации вы будете перенаправлены на ваш корневой путь с уведомлением.

3. Состояние и крючок (необязательно)

Мы можем защитить некоторые страницы с помощью предопределенной команды, такой как before_action :authenticate_member!, что означает, что вы не можете получить доступ к этому действию контроллера, если вы гость, или просто используете user_signed_in? для создания условия для некоторых разделов на странице, таких как меню и контент.

4. Изменить на дружественный маршрут (необязательно)

Если вы думаете, что users/sign_in и users/sign_up слишком сложно запомнить, и не в целом, вы можете настроить свой маршрут к любому слову, которое захотите. просто поместите эту строку в свой routes.rb файл

devise_for :users, path: '/', path_names: { sign_in: 'login', sign_out: 'logout', registration: 'register' }

Теперь каждый может получить доступ к localhost:3000/login для входа в свою учетную запись и localhost:3000/register для просмотра формы регистрации.

Вы можете делать больше с помощью Devise, например, управлять параметрами белого списка, добавлять дополнительные поля в форму, локализацию (I18n) или подключаться к другой учетной записи в социальных сетях (OmniAuth), проверять их репозиторий Github или вики-страницу здесь: https: //github.com/plataformatec/devise/wiki .

Для тех, кто не хочет путаться с аутентификацией, я думаю, что Devise - самый простой способ создать систему членства. Он прост и хорошо документирован, он решает вопросы безопасности. проста в обслуживании, и это все, что нам нужно.