Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Système de connexion en Python (3.3)


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Système de connexion en Python (3.3)
    Salut tout le monde !
    Aujourd'hui j'ai besoin d'un coup de main, je cherche à faire un système de connexion (Identifiant/Mot de passe) ainsi qu'une inscription à partir d'un script Python. Le seul problème c'est que je ne vois pas trop comment faire (Je veux que les identifiants soient stockés sur mon site).
    J'ai déjà regardé SQL qui avait l'air intéressant mais je n'ai pas trouvé de tuto détaillant le côté web (tout les tutos expliquent les bases de données locales).
    Si quelqu'un s'y connait
    Merci !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Personne ne voit comment faire :/ ?

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 782
    Points : 7 351
    Points
    7 351
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pour les mots de passe, le principe est simple:

    - crypter le bon mot de passe avec un algorithme qui ne marche que dans un sens => module hashlib par exemple.

    - on ne conserve que le mot de passe crypté (et pas le mot de passe non crypté qui est détruit!)

    - lorsque l'utilisateur donne le mot de passe de connexion, on lui applique le même algorithme de cryptage, et on vérifie qu'on obtient bien la même chaine que le mot de passe crypté qu'on a conservé.


    Maintenant, la méthode à utiliser pour conserver les identifiants de connexion (nom, mot de passe crypté, et éventuellement adresse email) dépend de beaucoup de choses:

    - Exemple, le serveur web a-t-il mysql comme SGBD (le plus courant)? Y a-t-il une application sur le serveur "html-javascript-php-java" qui devra les utiliser? Etc... Mais ce n'est plus du Python: voir le forum correspondant (php, java, ...)

    - Autre exemple, s'il s'agit de conserver sur internet les identifiants de connexion mais que l'utilisation se trouve uniquement sur un programme Python en local, un simple fichier texte téléchargé par ftp (module ftplib) peut être suffisant.

    - Autre exemple, si on a un hébergement qui supporte Python en CGI, on peut faire un petit script Python qui s'exécutera côté serveur, qui stockera et exploitera à distance les identifiants de connexion dans une base de données sqlite3, et qui renverra le résultat de la vérification au programme Python local.

    Etc... Bref: Il faut préciser le contexte: la question est trop ouverte.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 867
    Points : 25 230
    Points
    25 230
    Par défaut
    Salut,
    Citation Envoyé par Mizugola Voir le message
    Aujourd'hui j'ai besoin d'un coup de main, je cherche à faire un système de connexion (Identifiant/Mot de passe) ainsi qu'une inscription à partir d'un script Python. Le seul problème c'est que je ne vois pas trop comment faire
    Je suis d'accord avec Tyrtamos.

    Pourquoi ne pas utiliser un système d'authentification existant?
    La plupart des frameworks Web Python intègrent les bibliothèques permettant de réaliser cela. Il suffit d'apprendre a les configurer.
    Ca laisse plus de temps pour développer les fonctionnalités spécifiques de l'application - celles qu'attendent les utilisateurs.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Réponse
    Pour répondre :
    Oui mon hébergeur possède mySQL
    La solution d'utiliser FTPLib n'est pas mal non plus mais dans ce cas je devrais mettre mes identifiants FTP dans le fichier Python, donc à la disposition de tout le monde, ce qui ne me plait pas beaucoup.

    Et pour le hashlib j'avais déjà prévu de le faire du coup
    Donc peut-importe la solution FTP / SQL mais pour la SQL je ne sais pas comment faire avec le web et pour le FTP, mes ID FTP seront publiques !

  6. #6
    Expert éminent
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 782
    Points : 7 351
    Points
    7 351
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Tout dépend de ton projet.

    Imaginons que le programme utilisateur nécessite l'identifiant de connexion, mais que l'obtention de cet identifiant passe par toi par internet. Dans ce cas, tu devrais avoir le droit d'écriture par ftp, et le programme utilisateur n'a que le droit de lecture par httplib, donc sans tes codes de connexion ftp.

    Voilà un exemple concret: j'ai mis un simple fichier texte sur mon propre site (je le laisse 1 mois) qui s'appelle "utilisateur.txt" avec la seule ligne: "toto,motdepassecrypte,adresse_email". Son adresse http est: "http://infos.jpvweb.com/documents/test/utilisateur.txt". Voilà comment le programme utilisateur peut le lire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    #Python 2.7
     
    import httplib
     
    cnx = httplib.HTTPConnection("infos.jpvweb.com")
    cnx.request("GET", "/documents/test/utilisateur.txt")
    rep = cnx.getresponse()
    print rep.status, rep.reason # 200, ok
    texte = rep.read()
    print texte.rstrip().split(',')
    cnx.close()
    La réponse est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    200 OK
    ['toto', 'motdepassecrypte', 'adresse_email']
    On peut imaginer que ce fichier s'appelle comme l'utilisateur (toto.txt) si ce nom est unique. Sinon, créer un numéro client (52.txt) que tu gères en central. On peut imaginer d'autres solutions: par exemple que le fichier s'appelle avec nom+motdepasse transformé par base64. Dans ce cas, si le nom et/ou le motdepasse n'est pas bon, le fichier ne sera pas trouvé. Etc...

    Après, tout dépend du nombre d'utilisateurs: en dessous de 100, la solution ci-dessus est probablement suffisante. Au dessus, il est probable qu'une solution SQL soit meilleure. Mais ce sera beaucoup plus compliqué.

    Tout dépend aussi si c'est un programme commercialisé, et/ou qui touche des données sensibles. Dans ce cas, il vaudrait mieux comme l'a dit wiztricks utiliser un système de connexion existant et déjà éprouvé.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2013
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup
    Je vais tenter ton système, je te redis si j'ai réussi

Discussions similaires

  1. [Système] Executer un script python
    Par Analfabete dans le forum Langage
    Réponses: 1
    Dernier message: 08/06/2008, 09h22
  2. Connexions multiples Python - Mysql
    Par raoulchatigre dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 02/04/2008, 00h08
  3. [Système] pfsockopen , connexion persistante
    Par grunk dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2008, 19h06
  4. [Système] Lancer un script python en PHP
    Par gannher dans le forum Langage
    Réponses: 10
    Dernier message: 13/09/2007, 12h24
  5. Système de connexion/inscription
    Par zathuros dans le forum Flash
    Réponses: 1
    Dernier message: 30/08/2007, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo