使用MongoDB的令牌系统
moth的Python项目详细描述
moth被认为是一种仅用于电子邮件的身份验证方案(mail 但是,它是通用的,几乎可以用于 任何基于令牌的身份验证。
同步与异步
要创建同步蛾对象:
from moth import Moth moth_object = Moth()
要创建异步蛾对象:
from moth import AsyncMoth moth_object = AsyncMoth()
所有方法调用都受支持,并在mothvs中同名。 asynchmoth。对于本自述的其余部分,moth将同时引用moth 和asynchmoth除非另有说明。
初始化
启动moth需要创建到MongoDB的连接的凭据, 以及数据库名称(默认为“moth”)。
AsyncMoth.__init__()块,同时创建连接。它是唯一 这样做的方法。建议将asynchmoth初始化为 龙卷风服务器启动的一部分。
创建标记
调用moth.create_token()将生成一个随机令牌并将其存储在 具有电子邮件地址和可选IP地址、过期(以天为单位)和检索。 方法返回令牌。
认证令牌
为传递的电子邮件/令牌调用moth.auth_token()querys mongo 组合。如果IP地址在从Mongo返回的记录中,则为 已验证。如果返回expiration,则将其与datetime.now()
如果IP地址或过期无法验证,则令牌将是 已删除。
如果令牌验证,则查询retval。如果存在ReVaR,则返回。 否则,moth.auth_token()返回true。
其他方法
所有其他方法都是相当不言而喻的,并且/或者主要用于内部 目的。阅读代码以了解其工作原理。
什么是retval?
retval是当moth.auth_token()为 成功。它是完全可选的。如果你不通过检索 moth.create_token(),不要调用moth.set_retval(),然后 moth.auth_token()将在成功调用时返回true。
为什么要用它?
对于我正在处理的项目,它导致创建moth,retval是 非统组织的标志当我调用moth.auth_token()时,我验证moth令牌, 这给了我用户用于进行api调用的oauth令牌。
要求
moth需要motor,以及tornado和pymongo(它们是 两者都是通过motor安装的。
示例
示例可以在ReadTheDocs