Skip to content

Instantly share code, notes, and snippets.

@YannBouyeron
Last active November 16, 2018 13:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YannBouyeron/e26cb362a7a860e7cd649b0b2cc044d7 to your computer and use it in GitHub Desktop.
Save YannBouyeron/e26cb362a7a860e7cd649b0b2cc044d7 to your computer and use it in GitHub Desktop.
Gestion Session Bottle.md

Gestion des utilisateurs d'un site web : connections et inscriptions.

Le principe:

Pour presenter le principe simplifié, on utilisera un fichier json pour stocker les données. (On devrait normalement utiliser une base de données. La gestion des utilisateur avec sqlite est presentée ici : https://github.com/YannBouyeron/bottle-session)

1: Créer une page index: ’/‘

  • rechercher si un cookie de connection est présent.
  • si il est présent, recuperer son contenu (le mail de l’user) et retourner un texte personnalisé + un bouton de déconnection (action = /logout)
  • si il est absent, retourner un formulaire de connection (action = /login, avec 2 champs: mail et pwd) et un formulaire d’inscription (action = /creat, avec 3 champs: mail, pwd1, pwd2)

2: Créer une page /creat:

  • recuperer les données du formulaire creat (mail, pwd1, pwd2)
  • verifier que pwd1 et pwd2 soient identiques
  • si ils ne sont pas identiques faire une redirection vers /
  • hasher pwd
  • recuperer votre dictionnaire de comptes depuis votre fichier json si il existe
  • créer ou modifier votre dictionnaire de comptes pour y ajouter le mail et le pwd hasher de l’user
  • jsoniser votre dictionnaire de comptes
  • faire une redirection vers /

3: Créer une page /login:

  • recuperer votre dictionnaire de comptes depuis votre fichier json
  • recuperer les données du formulaire login (mail, pwd)
  • hasher le pwd
  • verifier que mail soit dans le dico, et que le pwd associé (qui est déjà hashé) soit identique au pwd hashé
  • si c’est le cas, créer un cookie de connection contenant le mail de l’user
  • faire une redirection vers /

4: Créer une page /logout:

  • créer un cookie de connection avec un max_age de 0 (il va remplacer le cookie existant et expirer immédiatement )
  • faire une redirection vers /
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment