[RUBY] 28e jour d'ingénieur qui deviendra à part entière dans 100 jours

28e jour d'ingénieur qui deviendra à part entière dans 100 jours

Cet article est une suite de Mise en œuvre du BAN de compte. Si vous le souhaitez, cliquez ici.

Mettre en œuvre le délai d'expiration de la session

Si l'utilisateur n'y accède pas pendant un certain temps Cette fois, je vais mettre en œuvre un mécanisme pour annuler automatiquement l'état de connexion. D'abord depuis session_controller. Le cœur de ce temps est session [: last_access_time] = Time.current part. Enregistrez l'heure actuelle dans la session lorsque vous vous connectez. Le reste est un traitement de connexion normal.

sessions_controller.rb


class User::SessionsController < User::Base

#réduction...


    if User::Authenticator.new(user_member).authenticate(@form.password)
      if user_member.suspended?
        flash.now.alert = "Le compte est suspendu"
        render action: "new"
      else
        session[:user_member_id] = user_member.id
        #Enregistrez l'heure actuelle dans la session lors de la connexion.
        session[:last_access_time] = Time.current
        flash.notice = "Vous êtes maintenant connecté"
        redirect_to :user_root
      end
    else
      flash.now.alert = "Adresse e-mail ou mot de passe incorrect"
      render action: "new"
    end
  end
end

Et voici l'implémentation du timeout de session. Cette fois, s'il n'y a pas de connexion pendant 60 minutes ou plus, la session expirera.

controllers/user/base.rb


#Définir le délai d'expiration à 60 minutes
TIMEOUT = 60.minutes

private def check_timeout

  if current_user
    #Session si le dernier accès a duré moins de 60 minutes[:last_access_time]À l'heure actuelle
    if session[:last_access_time] >= TIMEOUT.ago
      session[:last_access_time] = Time.current

    #Si le dernier accès n'est pas dans les 60 ans, supprimez la session en tant que délai d'expiration de session et supprimez-la.
    #Redirigez vers l'écran supérieur.
    else
      session.delete(user_id)
      flash.alert = "La session a expiré."
      redirect_to :staff_login
    end
  end
end

J'ai pu l'implémenter comme ça. C'était plus facile que prévu. Enregistrez la dernière heure d'accès dans la session. Est-ce là la partie importante? C'est tout pour aujourd'hui.

71 jours pour devenir ingénieur à part entière

Recommended Posts

28e jour d'ingénieur qui deviendra à part entière dans 100 jours
26e jour d'ingénieur qui deviendra à part entière dans 100 jours
Nouvel ingénieur qui servira en 100 jours (5e jour)
Nouvel ingénieur qui servira en 100 jours (6e jour)
Nouvel ingénieur qui servira en 100 jours (4e jour)
Nouvel ingénieur qui servira dans 100 jours (jour 0)
Nouvel ingénieur qui servira en 100 jours (5e jour)
Nouvel ingénieur qui servira en 100 jours (6e jour)
Nouvel ingénieur qui servira en 100 jours (1er jour)
Nouvel ingénieur qui servira en 100 jours (4e jour)
Nouvel ingénieur qui servira en 100 jours (2ème jour)
26e jour d'ingénieur qui deviendra à part entière dans 100 jours
28e jour d'ingénieur qui deviendra à part entière dans 100 jours
Les débutants en Java créent des parties de poker en 4 jours (3ème jour)
Nouvel ingénieur qui servira dans 100 jours (jour 0)
Nouvel ingénieur qui servira en 100 jours (1er jour)
Nouvel ingénieur qui servira en 100 jours (2ème jour)
《Inexpérimenté → ingénieur web》 5ème jour de pratique
《Inexpérimenté → ingénieur web》 3e jour de pratique
《Inexpérimenté → ingénieur web》 4ème jour de pratique
《Inexpérimenté → ingénieur web》 1er jour de pratique
Écrivez du code tous les jours! ~ L'ingénieur Java de 2e année écrit du code tous les jours ~
26e jour d'ingénieur qui deviendra à part entière dans 100 jours
27 ans Histoire de devenir ingénieur en développement grâce à une programmation inexpérimentée
《Inexpérimenté → ingénieur web》 5ème jour de pratique
《Inexpérimenté → ingénieur web》 4ème jour de pratique
Coincé devant le forgeron par enum
Devenez ingénieur iOS
Trouvez le nombre de jours dans un mois avec Kotlin
Suivez un événement mystérieux où le niveau de journal change soudainement - Une journée d'ingénieur de support OSS
Les débutants en Java créent des parties de poker en 4 jours (3ème jour)
Faites un blackjack avec Java
Refactoring: faire du Blackjack en Java
Les débutants jouent à des jeux Janken en Java
[Pour les débutants] Exécutez Selenium sur Java
Nouvel ingénieur qui servira en 100 jours (2ème jour)
Nouvel ingénieur qui servira dans 100 jours (jour 0)
Nouvel ingénieur qui servira en 100 jours (5e jour)
Nouvel ingénieur qui servira en 100 jours (6e jour)
Nouvel ingénieur qui servira en 100 jours (1er jour)
Nouvel ingénieur qui servira en 100 jours (4e jour)
Nouvel ingénieur qui servira en 100 jours (2ème jour)
26e jour d'ingénieur qui deviendra à part entière dans 100 jours
28e jour d'ingénieur qui deviendra à part entière dans 100 jours
Les débutants en Java créent des parties de poker en 4 jours (3ème jour)
[Java] Les débutants veulent faire des rencontres. 1er
Journée Java 2018
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Représente le «jour suivant» et le «jour précédent» en Java / Android
[Angoisse du débutant Java] Code difficile à tester implémenté dans Junit