Maison  >  Article  >  développement back-end  >  méthode python pycurl pour vérifier l'authentification de base et digest

méthode python pycurl pour vérifier l'authentification de base et digest

不言
不言original
2018-05-02 13:48:112193parcourir

Cet article présente principalement la méthode de vérification de l'authentification de base et digest dans python pycurl. Maintenant, je le partage avec vous et le donne comme référence. Jetons un coup d'œil ensemble

Introduction

pycurl est similaire à l'urllib de Python, mais pycurl est un wrapper de libcurl et est plus rapide.

Cet article utilise la version 7.43.0.1 de pycurl.

Configurer l'authentification de base sous Apache

Générer un fichier de mot de passe de base

htpasswd -bc passwd.basic test 123456

Activer mod_auth_basic

LoadModule auth_basic_module modules/mod_auth_basic.so

Configurer sur un répertoire spécifique

<Directory "D:/test/basic">
  AuthName "Basic Auth Dir"
  AuthType Basic
  AuthUserFile conf/passwd.basic
  require valid-user
</Directory>

Redémarrer Apache

Configurer l'authentification Digest sous Apache

Générer le fichier de mot de passe Digest

htdigest -c passwd.digest "Digest Encrypt" test

Activer mod_auth_digest

LoadModule auth_digest_module modules/mod_auth_digest.so

Configurer sur un répertoire spécifique

<Directory "D:/test/digest">
  AuthType Digest
  AuthName "Digest Encrypt" # 要与密码的域一致
  AuthDigestProvider file
  AuthUserFile conf/passwd.digest
  require valid-user
</Directory>

Redémarrer Apache

Vérifier l'authentification de base

# -*- coding: utf-8 -*-
import pycurl
try:
  from io import BytesIO
except ImportError:
  from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, &#39;http://test/basic/&#39;)
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_BASIC)
c.setopt(c.USERNAME, &#39;test&#39;)
c.setopt(c.PASSWORD, &#39;123456&#39;)
c.perform()
print(&#39;Status: %d&#39; % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()

Vérifier l'authentification Digest

# -*- coding: utf-8 -*-
import pycurl
try:
  from io import BytesIO
except ImportError:
  from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, &#39;http://test/digest/&#39;)
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_DIGEST)
c.setopt(c.USERNAME, &#39;test&#39;)
c.setopt(c.PASSWORD, &#39;123456&#39;)
c.perform()
print(&#39;Status: %d&#39; % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn