Gerät - Fordern Sie etwas an, ohne den Countdown zurückzusetzen, bis sich ein Benutzer aufgrund von Inaktivität abgemeldet hat

Ich arbeite mit Devise an einer RoR-App. Ich möchte, dass Clients eine Anfrage an den Server senden, um zu sehen, wie viel Zeit verbleibt, bis der Benutzer auf dem Client aufgrund von Inaktivität automatisch abgemeldet wird (mithilfe vonTimeoutable Modul). Ich möchte nicht, dass diese Anfrage dazu führt, dass Devise den Countdown zurücksetzt, bis der Benutzer abgemeldet ist. Wie kann ich das konfigurieren?

Dies ist der Code, den ich jetzt habe:

class SessionTimeoutController < ApplicationController
  before_filter :authenticate_user!

  # Calculates the number of seconds until the user is
  # automatically logged out due to inactivity. Unlike most
  # requests, it should not reset the timeout countdown itself.
  def check_time_until_logout
    @time_left = current_user.timeout_in
  end

  # Determines whether the user has been logged out due to
  # inactivity or not. Unlike most requests, it should not reset the
  # timeout countdown itself.
  def has_user_timed_out
    @has_timed_out = current_user.timedout? (Time.now)
  end

  # Resets the clock used to determine whether to log the user out
  # due to inactivity.
  def reset_user_clock
    # Receiving an arbitrary request from a client automatically
    # resets the Devise Timeoutable timer.
    head :ok
  end
end

SessionTimeoutController#reset_user_clock funktioniert, weil jedes Mal, wenn RoR eine Anfrage von einem authentifizierten Benutzer erhält,Timeoutable#timeout_in wird auf das zurückgesetzt, was ich in konfiguriert habeDevise#timeout_in. Wie verhindere ich das Zurücksetzen incheck_time_until_logout undhas_user_timed_out?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage