python http基本验证

#!usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2

LOGIN = ""
PASSWORD = ""
URL = ""
REALM = "Secure Archive"

def handler_version(url):
    from urlparse import urlparse#urlparse用来将url拆成各个部分scheme netloc path params query fragment
    hdlr = urllib2.HTTPBasicAuthHandler()#http验证类 里面有用户名和密码
    hdlr.add_password(REALM, urlparse(url)[1], LOGIN, PASSWORD)#将url 用户名 密码添加进去
    opener = urllib2.build_opener(hdlr)#urlopen不支持验证等高级功能 所以自定义opener
    urllib2.install_opener(opener)#建立url开启器
    return url

def request_version(url):
    from base64 import encodestring#编码
    req = urllib2.Request(url)#开始请求页面
    b64str = encodestring('%s:%s' % (LOGIN, PASSWORD))[:-1]#将sting转换成base64-data形式 base64为一种形式的二进制编码
    req.add_header("Authorization", "Basic %s" % b64str)#添加header标头
    return req

for funcType in ('handler', 'request'):
    print '***Using %s:' % funcType.upper()
    url = eval('%s_version' % funcType)(URL)#eval 将字符串转换成有效的表达式并返回结果
    f = urllib2.urlopen(url)
    print f.readline()
    f.close()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Flask提供了多种身份验证方式,常用的有以下几种: 1. 基本认证(Basic Authentication):通过用户名和密码进行验证,使用HTTP的Authorization头字段传递。 2. Token认证(Token Authentication):通过在每个请求中传递一个token来验证用户身份。token通常是一串加密的字符串,用于识别用户。 3. OAuth认证(OAuth Authentication):OAuth是一种授权协议,允许用户通过第三方服务进行身份验证和授权。 下面是一个使用基本认证的示例代码: ```python from flask import Flask, request, Response from functools import wraps app = Flask(__name__) def check_auth(username, password): return username == 'admin' and password == 'secret' def authenticate(): return Response( 'Unauthorized', 401, {'WWW-Authenticate': 'Basic realm="Login Required"'} ) def requires_auth(f): @wraps(f) def decorated(*args, **kwargs): auth = request.authorization if not auth or not check_auth(auth.username, auth.password): return authenticate() return f(*args, **kwargs) return decorated @app.route('/') @requires_auth def index(): return "Hello, authenticated user!" if __name__ == '__main__': app.run() ``` 在上面的代码中,我们定义了一个check_auth函数,用于验证用户名和密码是否正确。authenticate函数用于返回401错误码和WWW-Authenticate头,提示用户需要登录。requires_auth是一个装饰器函数,用于验证请求是否经过身份验证。如果没有经过身份验证,则调用authenticate函数。 在路由函数中使用@requires_auth装饰器,表示该路由需要经过身份验证才能访问。如果用户提供了正确的用户名和密码,则返回"Hello, authenticated user!"。如果没有提供正确的用户名和密码,则返回401错误码和WWW-Authenticate头,提示用户登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值