Record d'apprentissage Ruby on rails-2020.10.07 ②

Fonction d'authentification de l'utilisateur Authentification de l'utilisateur Mécanisme pour confirmer et accéder à l'autre partie -Authentification: Authentification Confirmation d'identité -Permission: donne le résultat de l'authentification d'autorisation et l'autorisation d'utilisation

devise

concevoir : une bibliothèque qui fournit à Rails un mécanisme d'authentification utilisateur

--S'inscrire: enregistrer les informations utilisateur et le mot de passe crypté dans la base de données

  • Confirmation de l'utilisateur par email --Login: Authentification par email et mot de passe --Gestion des sessions avec cookies
  • Suivi des utilisateurs: nombre de connexions, date et heure, adresse IP, etc.
  • Réinitialisation du mot de passe
  • Verrou de l'utilisateur
  • Prise en charge d'OmniAuth: authentification SNS par Twitter, Facebook, etc.

Ajouter et installer une bibliothèque de devises

gem 'devise'
$ rails g devise:install```

 <h1> Réglage manuel </ h1>

 Ajouter une URL par défaut


#### **`config/environments/development.rb`**
```rb

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_caching = false

Spécifiez root_url

config/routes.rb


root 'welcome#index'

Créer un emplacement d'affichage pour les messages flash

app/views/layouts/application.html.erb


<body>
  <p class="notice"><%= notice %></p>
  <p class="alert"><%= alert %></p>
  <%= yield %>
</body>

Générer une vue pour l'authentification des utilisateurs $ rails g devise:views

conception de la vue support

  • Connexion: app / vues / devise / sessions / new.html.erb --S'inscrire: app / views / devise / registrations / new.html.erb
  • Modifier les informations utilisateur: app / views / devise / registrations / edit.html.erb --Modifier le mot de passe: app / views / devise / passwords / edit.html.erb
  • Authentification par e-mail: app / vues / devise / confirmations / new.html.erb
  • Réinitialisation du mot de passe: app / views / devise / passwords / new.html.erb
  • Déverrouillage du compte: app / vues / devise / déverrouille / new.html.erb

Création d'un modèle utilisateur Créer un modèle utilisateur

rails g devise User rails db:migrate

Enregistrer les utilisateurs initiaux dans l'appareil en une seule fois

db/seeds.rb


User.create(email: '[email protected]', password: 'password')
User.create(email: '[email protected]', password: 'password')
User.create(email: '[email protected]', password: 'password')

$ rails db:seed

Restrictions d'accès Ajouter une navigation de connexion

app/views/welcome/index.html.erb


<% if user_signed_in? %>
  Logged in as <strong><%= current_user.email %></strong>.
  <%= link_to "Settings", edit_user_registration_path %> |
  <%= link_to "Logout", destroy_user_session_path, method: :delete %>
<% end %>

La partie «utilisateur» de la méthode d'assistance est décrite en fonction de «l'utilisateur» du nom du modèle.

Obligé d'aller à la page de connexion

app/controllers/welcome_controller.rb


class WelcomeController < ApplicationController
  before_action :authenticate_user!
  def index
  end
end

Session et mot de passe Session Une série d'accès de la connexion à la déconnexion

Comment vérifier la session </ b> Pour Google Chrome

  1. Ouvrez le menu "Paramètres"
  2. «Paramètres détaillés» - «Paramètres de contenu» - «Coookies» - «Tous les cookies et données du site»
    1. Rechercher le nom de domaine d'une application Web

Comment vérifier votre mot de passe crypté

  user = User.find(2)
  user.email
  user.encrypted_password

Recommended Posts