类似于apache使用的mod_auth_tkt的票证验证系统

ticket_auth的Python项目详细描述


提供类似mod_auth_tkt的哈希票证的简单库,可以是 用于存储用户身份验证详细信息。

库不能与mod_auth_tkt格式交换,因为 mod_auth_tkt不支持IPv6地址和不同的哈希 算法,而ticket_auth提供了两者。

用法

使用库的一般格式是实例化票证工厂 用于生成车票,然后创建新车票或验证现有车票 使用那个工厂的票。例如:

# The ticket factory takes a bytes argument specifying the secret
# identifier, and a optional algorithm (defaults to sha512). Possible
# algorithms are those specified by the python hashlib library
factory = TicketFactory(b'secret', hashalg='md5')

# The new function returns a new ticket (as a string). It takes a user
# identifier as a argument, along with several optional arguments. The
# valid_until argument is the time at which the ticket expires.
valid_until = time.time() + 60
ticket = factory.new('test_id', valid_until=valid_until)

# A ticket can be validated with the validate function. It returns a
# TicketInfo value on success, or raises an error on failure
info = factory.validate(ticket)

票证也可以通过传递 类似IP地址的对象(字符串或来自模块IP地址)作为 创建和验证字符串时的client_ip参数。例如:

valid_until = time.time() + 60
ticket = factory.new('test_id', valid_until=valid_until,
                     client_ip='192.168.0.1')

info = factory.validate(ticket, client_ip='192.168.0.1')

还可以传递一系列令牌,这些令牌将添加到票据中。 请注意,这些令牌(如用户id和用户数据)以明文形式存储 文本格式:

ticket = factory.new('test_id', valid_until=valid_until, tokens=('a', 'b'),
                     user_data='some data')

validate函数返回的ticketinfo对象是一个名为tuple的 以下参数:摘要(散列函数输出)、用户id、令牌, 用户数据,有效期至。

许可证

图书馆的许可证是麻省理工学院的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest