hand模块

mohand_plugin_otp.hand.otp(*dargs, **dkwargs)[源代码]

将被装饰函数封装为一个 click.core.Command 类,成为 mohand 的子命令

该装饰器被作为一个包含定制其行为的含参数装饰器使用(如: @hand.otp(secret='xxoo')

注解

该装饰器最终会通过插件系统被注册到 hands.hand 中。

此处的 otp 装饰器本身是应该不支持无参数装饰的,但考虑到其作为样例实现, 故将其实现为兼容两种传参的装饰器

参数:
  • log_level (int) – 当前子命令的日志输出等级,默认为: logging.INFO
  • secret (str) – 用于构造基于时间的 OTP 的秘钥字串
返回:

被封装后的函数

返回类型:

function

class mohand_plugin_otp.hand.OTP(secret=None)[源代码]

基类:object

pyotp实例化后的对象封装,支持一系列接口方法

now()[源代码]

获取当前密码

返回:OTP 密码
返回类型:str
format(fmt='{otp}', **kwargs)[源代码]

格式化密码输出,用于应对 OTP 与指定字串进行拼接作为最终密码的场景。 额外提供的格式化参数需要通过 **kwargs 传入

参数:fmt (str) – 格式化模板字串,将会调用其 str.format 方法
返回:格式化后的 OTP 密码
返回类型:str
引发:KeyError – fmt字串中指定的关键字参数未传入造成的格式化失败