0

Je travaille sur un exemple de code donné dans la documentation python, le code est:comment ajouter l'authentification à un service Web python wsgiref

from wsgiref.simple_server import make_server, demo_app 

httpd = make_server('', 8000, demo_app) 
print "Serving HTTP on port 8000..." 

# Respond to requests until process is killed 
httpd.serve_forever() 

# Alternative: serve one request, then exit 
httpd.handle_request() 

Je peux accéder à ce à travers le localhost sur le port 8000, mais maintenant si je veux passer le nom d'utilisateur/mot de passe avec le "nom d'utilisateur localhost: 8000, mot de passe" comment je fais ceci. Je l'ai compris comment je recevrais savoir si l'authentification a échoué, mais pas comment recevoir réellement le nom d'utilisateur/mot de passe pour vérifier ..

Tous les conseils et astuces .....

Cheers,

+0

Il est préférable de générer des clés API pour les utilisateurs et ils utilisent cela comme une clé = xxx argument à la chaîne de requête ... vous vérifiez ensuite que c'est une clé valide et servir le contenu ... –

+0

@Joran, merci pour le conseil mais je n'ai pas d'options ici. Un travail autour de vous que vous connaissez? – AliR

+1

juste les ajouter utilisateur = xxx & pass = xxx et les valider avant de le servir ... mais ce n'est pas très sûr que la plupart des utilisateurs enverront leurs informations d'identification sur les connexions non sécurisées –

Répondre

1

Si vous passez un nom d'utilisateur/mot de passe dans la chaîne de requête comme http://localhost:8000?username=x&password=y, vous pouvez les récupérer dans votre fonction de gestionnaire WSGI à partir de l'environnement: environ['QUERY_STRING']. Vous pouvez utiliser urlparse.parse_qs à partir de la bibliothèque standard pour l'analyser. Si c'est du code qui est en cours de production, Joran deuxième, vous devez utiliser au moins l'authentification de base HTTP et certains middleware d'authentification comme barrel.

+0

merci beaucoup, et oui je regarderais certainement dans le tonneau. Mais pour le moment cela fonctionnerait pour la démo. Merci encore – AliR

Questions connexes