[RUBY] Implementieren Sie die Anmeldefunktion in Rails einfach mit nur einem Namen und einem Passwort (2).

Fortsetzung von Letztes Mal. Von hier aus implementieren wir den Anmeldebildschirm und den Anmeldevorgang

Verfahren

--Erstellen Sie einen Sitzungscontroller

MacBook % rails g controller Sessions new

config/routes


Rails.application.routes.draw do
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
~

--Nächste erstellen Sie ein Anmeldeformular. Diesmal ist es ein direktes Schreiben ohne Verwendung von Bootstrap usw.

app/views/sessions/new.html.erb


<body>
  <h1>Login</h1>
  <%= form_for(:session, url: login_path) do |f| %>
    <div class="input-name">
      <%= f.label :password, 'Raumname' %>
      <%= f.text_field :name, placeholder: "Bitte geben Sie den Namen des Zimmers ein" %>
    </div>
    <div class="form-group">
      <%= f.label :password, 'Passwort' %>
      <%= f.password_field :password, placeholder: 'Bitte geben Sie Ihr Passwort ein' %>
      <%= f.submit 'Einloggen' %>
    </div>
  <% end %>
</body>

--Erstellen Sie ein Formular und greifen Sie auf http: // localhost: 3000 / login zu, um dies zu überprüfen

app/controllers/sessions_controller.rb


class SessionsController < ApplicationController
  def new
  end

  def create
    room = Room.find_by(name: params[:session][:name])
    if room && room.authenticate(params[:session][:password])
    else
    end
  end

  def destroy
  end
end

--Schreiben Sie die Verarbeitung, wenn die Anmeldung der Erstellungsaktion fehlschlägt. (Bootstrap etc. werden nicht verwendet)

app/controllers/sessions_controller.rb


~
  def create
    room = Room.find_by(name: params[:session][:name])
    if room && room.authenticate(params[:session][:password])
    else
      flash[:alert] = 'Der Name oder das Passwort ist falsch'
      redirect_to '/login'
    end
  end
~

app/controllers/application_controller.rb


class ApplicationController < ActionController::Base
  include SessionsHelper
end

app/helpers/sessions_helper.rb


module SessionsHelper
  #Speichern Sie die verschlüsselte roomID in temporären Cookies im Browser
  def log_in(room)
    session[:room_id] = room.id
  end
end

/app/controllers/sessions_controller.rb


~
  def create
    room = Room.find_by(name: params[:session][:name])
    if room && room.authenticate(params[:session][:password])
      log_in room
      redirect_to receptions_path
    else
      flash[:alert] = 'Der Name oder das Passwort ist falsch'
      redirect_to '/login'
    end
  end
~
Sie können sich jetzt über den Browserbildschirm anmelden.

Fortsetzung [Implementierung der Login-Funktion mit Rails einfach nach Name und Passwort (3)]

(https://qiita.com/yongjugithub/items/dbb880f085f99cc9af93)

Recommended Posts

Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (1)
Implementieren Sie die Anmeldefunktion in Rails einfach mit nur einem Namen und einem Passwort (2).
Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (3).
Implementieren Sie eine einfache Anmeldefunktion in Rails
Implementieren Sie die Anwendungsfunktion in Rails
So implementieren Sie den Authentifizierungsprozess durch Angabe von Benutzername und Kennwort in Spring Boot
[Ruby on Rails] Implementieren Sie die Anmeldefunktion von add_token_to_users mit API
Implementieren Sie die CSV-Download-Funktion in Rails
Implementieren Sie die Benutzerregistrierungsfunktion und die Unternehmensregistrierungsfunktion separat in Rails devise
[Rails] Funktionseinschränkungen im Gerät (Login / Logout)
Schienen Hinzufügen einer einfachen Anmeldefunktion
Buchungsfunktion implementiert durch asynchrone Kommunikation in Rails
Implementieren Sie die Sternebewertungsfunktion mit Raty in Rails 6
Implementieren Sie Iterationen in View, indem Sie eine Sammlung rendern [Rails]
Markdown in Rails implementiert
So implementieren Sie die Gastanmeldung in 5 Minuten im Rails-Portfolio
Implementieren Sie die Nachsuchfunktion in der Rails-Anwendung (where-Methode).
[Rails] Implementieren Sie die Registrierungs- / Löschfunktion für Kreditkarten in PAY.JP
Implementieren Sie die LTI-Authentifizierung in Rails
Hash beim Spring-Boot das Passwort und verwenden Sie die Mitgliederregistrierung und die Spring-Sicherheit, um die Anmeldefunktion zu implementieren.
[Rails] Implementieren Sie die Image-Posting-Funktion
[Rails] Eine einfache Möglichkeit, eine Selbsteinführungsfunktion in Ihrem Profil zu implementieren
Ich habe versucht, die Ajax-Verarbeitung der ähnlichen Funktion in Rails zu implementieren
Rails 6 (standardmäßig mit Webpacker) implementiert die Sternebewertungsfunktion
Fügen Sie eine Suchfunktion in Rails hinzu.
Aktivieren Sie jQuery und Bootstrap in Rails 6 (Rails 6).
[Rails] Implementierung des Anmeldebildschirms in Devise
Implementieren Sie die PHP-Implodierungsfunktion in Java
Implementieren Sie ein Kontaktformular in Rails
Entfernen Sie "Assets" und "Turbolinks" in "Rails6".
CRUD-Funktion und MVC in Rails
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
So implementieren Sie eine Diashow mit Slick in Rails (einzeln und mehrfach nacheinander)
"Lehrer, ich möchte im Frühjahr eine Anmeldefunktion implementieren" ① Hallo Welt
So implementieren Sie Suchfunktionen in Rails
So ändern Sie den App-Namen in Rails
Versuchen Sie, eine Anmeldefunktion mit Spring-Boot zu implementieren
Erstellen Sie trotzdem eine Anmeldefunktion mit Rails
So implementieren Sie Ranking-Funktionen in Rails
Implementieren Sie Schaltflächenübergänge mit link_to in Rails
Implementierung der Anmeldefunktion durch Spring Security (securityConfig)
Ein Memo zum Erstellen eines einfachen Formulars, das nur HTML und CSS in Rails 6 verwendet
[Rails] Geben Sie diesen Artikel an Sie weiter, die nach "devine name login" gesucht haben.
Analysieren Sie die Datums- und Zeitzeichenfolge, die von der asctime-Funktion der C-Sprache in Java formatiert wurde