[RUBY] Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (1)

Einführung

Implementieren Sie es einfacher als die im Rails-Tutorial verwendete E-Mail- und Kennwortanmeldung. Verwenden Sie keine Edelsteine wie Geräte.

Annahme

Ziel

Melden Sie sich hier mit dem Namen und dem Passwort der Raumtabelle an.

Verfahren

MacBook % rails g model Room name:string

db/migrate/Zeitstempel.create_rooms.rb


class CreateRooms < ActiveRecord::Migration[6.0]
  def change
    create_table :rooms do |t|
      t.string :name, null: false

      t.timestamps
    end
  end
end
MacBook % rails db:migrate

app/models/room.rb


class Room < ApplicationRecord
  validates :name, presence: true, length: { maximum: 50 }
  has_secure_password
end

--Erstellen Sie eine Migration, die eine Spalte password_digest hinzufügt, und wenden Sie die Migration an

MacBook % rails generate migration add_password_digest_to_rooms password_digest:string
MacBook % rails db:migrate

--Öffnen Sie Gemfile, kommentieren Sie gem'bcrypt 'aus und installieren Sie es

Gemfile


~
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
gem 'bcrypt', '~> 3.1.7'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'
~

app/models/room.rb


class Room < ApplicationRecord
  validates :name, presence: true, length: { maximum: 50 }
  has_secure_password
  validates :password, presence: true, length: { minimum: 6 }
end

--Überprüfen Sie, ob die Instanz mit der Rails-Konsole erstellt und in der Datenbank gespeichert werden kann

Ein anderes Terminal als das, mit dem der Server gestartet wurde


MacBook % rails c  
~
irb(main):001:0> @room = Room.new(name:"tokyoroom",password:"password",password_confirmation:"password")
   (2.2ms)  SET NAMES utf8mb4,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
=> #<Room id: nil, name: "tokyoroom", created_at: nil, updated_at: nil, password_digest: [FILTERED]>
irb(main):002:0> @room.save
   (0.7ms)  BEGIN
  Room Create (3.3ms)  INSERT INTO `rooms` (`name`, `created_at`, `updated_at`, `password_digest`) VALUES ('tokyoroom', '2020-09-23 07:26:30.787094', '2020-09-23 07:26:30.787094', '$2a$12$SmCtpmRZn0M5BMtuT6BmAOKO.DMAmMOIYSXoHlxDrSbA2AQcAYnMC')
   (5.0ms)  COMMIT
=> true

Fortsetzung [2]

(https://qiita.com/yongjugithub/items/65fcdf73e42857297321)

Verweise

https://railstutorial.jp/chapters/modeling_users?version=5.1#sec-adding_a_secure_password

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)
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
[Schienen] Implementieren Sie die Benutzersuchfunktion
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
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