[RUBY] 28. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird

28. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird

Dieser Artikel ist eine Fortsetzung von Implementing Account BAN. Wenn Sie möchten, klicken Sie bitte hier.

Implementieren Sie das Sitzungszeitlimit

Wenn der Benutzer für einen bestimmten Zeitraum nicht zugreift Dieses Mal werde ich einen Mechanismus implementieren, um den Anmeldestatus automatisch abzubrechen. Zuerst von session_controller. Das Herz dieser Zeit ist session [: last_access_time] = Zeit.aktueller Teil. Speichern Sie die aktuelle Zeit in der Sitzung, wenn Sie sich anmelden. Der Rest ist die normale Anmeldeverarbeitung.

sessions_controller.rb


class User::SessionsController < User::Base

#Kürzung...


    if User::Authenticator.new(user_member).authenticate(@form.password)
      if user_member.suspended?
        flash.now.alert = "Konto ist gesperrt"
        render action: "new"
      else
        session[:user_member_id] = user_member.id
        #Speichern Sie die aktuelle Zeit in der Sitzung beim Anmelden.
        session[:last_access_time] = Time.current
        flash.notice = "Sie sind jetzt angemeldet"
        redirect_to :user_root
      end
    else
      flash.now.alert = "Falsche E-Mail-Adresse oder falsches Passwort"
      render action: "new"
    end
  end
end

Und hier ist die Implementierung des Sitzungszeitlimits. Wenn dieses Mal 60 Minuten oder länger keine Anmeldung erfolgt, läuft die Sitzung ab.

controllers/user/base.rb


#Stellen Sie die Zeitüberschreitung auf 60 Minuten ein
TIMEOUT = 60.minutes

private def check_timeout

  if current_user
    #Sitzung, wenn der letzte Zugriff weniger als 60 Minuten betrug[:last_access_time]Zur aktuellen Zeit
    if session[:last_access_time] >= TIMEOUT.ago
      session[:last_access_time] = Time.current

    #Wenn der letzte Zugriff nicht innerhalb von 60 liegt, löschen Sie die Sitzung als Sitzungszeitlimit und löschen Sie sie.
    #Zum oberen Bildschirm umleiten.
    else
      session.delete(user_id)
      flash.alert = "Die Sitzung ist abgelaufen."
      redirect_to :staff_login
    end
  end
end

Ich konnte es so umsetzen. Es war einfacher als ich erwartet hatte. Speichern Sie die letzte Zugriffszeit in der Sitzung. Ist das der wichtige Teil? Das ist alles für heute.

71 Tage, um ein vollwertiger Ingenieur zu werden

Recommended Posts

28. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
26. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
Neuer Ingenieur, der in 100 Tagen (5. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (6. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (4. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen einer sein wird (Tag 0)
Neuer Ingenieur, der in 100 Tagen (5. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (6. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (1. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (4. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (2. Tag) eine sein wird
26. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
28. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
Java-Anfänger machen Pokerspiele in 4 Tagen (3. Tag)
Neuer Ingenieur, der in 100 Tagen einer sein wird (Tag 0)
Neuer Ingenieur, der in 100 Tagen (1. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (2. Tag) eine sein wird
《Unerfahren → Webingenieur》 5. Übungstag
《Unerfahren → Webingenieur》 3. Übungstag
《Unerfahren → Webingenieur》 4. Übungstag
《Unerfahren → Webingenieur》 1. Übungstag
Schreibe jeden Tag Code! ~ 2. Jahr Java Engineer schreibt jeden Tag Code ~
26. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
27 Jahre alt Geschichte, Entwicklungsingenieur aus unerfahrener Programmierung zu werden
《Unerfahren → Webingenieur》 5. Übungstag
《Unerfahren → Webingenieur》 4. Übungstag
Von enum vor dem Schmied festgefahren
Werden Sie iOS-Ingenieur
Finden Sie mit Kotlin die Anzahl der Tage in einem Monat
Folgen Sie einem mysteriösen Ereignis, bei dem sich die Protokollstufe plötzlich ändert - ein Tag eines OSS-Supporttechnikers
Java-Anfänger machen Pokerspiele in 4 Tagen (3. Tag)
Machen Sie einen Blackjack mit Java
Refactoring: Machen Sie Blackjack in Java
Anfänger spielen Janken-Spiele in Java
[Für Anfänger] Führen Sie Selenium auf Java aus
Neuer Ingenieur, der in 100 Tagen (2. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen einer sein wird (Tag 0)
Neuer Ingenieur, der in 100 Tagen (5. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (6. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (1. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (4. Tag) eine sein wird
Neuer Ingenieur, der in 100 Tagen (2. Tag) eine sein wird
26. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
28. Tag des Ingenieurs, der in 100 Tagen vollwertig sein wird
Java-Anfänger machen Pokerspiele in 4 Tagen (3. Tag)
[Java] Anfänger wollen Dating machen. 1
Java Day 2018
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Repräsentiert "nächster Tag" und "vorheriger Tag" in Java / Android
[Java-Anfängerangst] In Junit implementierter schwer zu testender Code