定义一个方法start_countdown() 。如果剩余时间小于等于0 , 重置账户 。否则显示程序已锁住账户,并在剩余时间内使用回调再试一次 。
def start_countdown(self, remaining_time): if remaining_time <= 0: self.reset_account() return minutes = int(remaining_time // 60) seconds = int(remaining_time % 60) timer_label = f'Account Locked. Try again in: {minutes:02d}:{seconds:02d}' self.timer_label.config(text=timer_label) self.master.after(1000, self.start_countdown, remaining_time - 1)
定义一个函数reset_account() 。像前面一样重置所有小组件和变量的状态 。
def reset_account(self): self.locked = False self.wrong_attempts = 0 self.label1.config(text='Enter your mobile number:') self.mobile_number_entry.config(state=tk.NORMAL) self.send_otp_button.config(state=tk.NORMAL) self.timer_label.config(text='') self.resend_otp_button.config(state=tk.DISABLED) self.label2.config(text='Enter OTP sent to your mobile:') self.otp_entry.config(state=tk.NORMAL) self.verify_otp_button.config(state=tk.NORMAL) self.stop_timer = False
创建根窗口和类的实例,并运行Tkinter应用程序 。
if __name__ == '__main__': root = tk.Tk() otp_verification = OTPVerification(root) root.mainloop()
使用OTP验证的输出示例在运行OTP验证程序时 , 您会看到一个窗口,要求输入手机号码 。输入手机号码以及所在国家代号 , 然后点击“发送OTP”按钮 。您会收到一条消息,表明程序已成功发送OTP,按钮会停用两分钟 。检查手机是否收到了OTP,并在过期前输入它 。
文章插图
在计时器过期前输入正确的OTP后,您将收到一条消息,表明程序已成功验证了OTP,退出程序 。如果您没有及时输入,会收到消息框,表明OTP已过期 。可以点击“重新发送OTP”按钮以生成新的OTP,并发送到您的手机 。
文章插图
如果您输错了OTP,程序将显示一个消息框,表明“OTP不匹配” 。
文章插图
如果OTP输错三次,所有字段将被禁用,账户将被锁住十分钟 。
文章插图
结合使用Twilio与Python使用Twilio,您可以为各种事件构建短信通知系统 。您可以将其与物联网设备一起使用 , 当设备的数值高于或低于某个阈值或者检测到入侵者时发送短信 。您还可以构建具有双因素身份验证的安全登录系统,构建WhatsApp聊天机器人和约会提醒系统 。
除此之外,您还可以用它进行电话号码验证、营销活动、发送调查表和收集反馈 。在构建任何应用程序时,始终留意Twilio API的定价,以免遭遇意外成本 。
原文标题:How to Build an OTP Verification System Using Python,作者:Sai Ashish Konchada
推荐阅读
- Python日期时间处理与计算:节省时间,准确计算
- 使用LangChain和DeepInfra构建客户支持聊天机器人的操作指南
- 使用Docker构建轻量级Linux容器
- python正则一篇搞掂
- 如何在职场中保持高效率
- 数据复制:构建大规模分布式系统的关键组成部分
- 企业最需要什么样的Python工程师?了解一下!
- 比C语言还快20%!Mojo首个大模型开放下载,性能达Python版250倍
- 物联网边缘技术框架KubeEdge:基于Kubernetes构建的云原生边缘计算框架
- 数字孪生背后的真实构建者:谁在创造数字世界?