account = {
"is_authenticated":False,# 用户登录了就把这个改成True
"username":"alex", # 假装这是DB里存的用户信息
"password":"abc123" # 假装这是DB里存的用户信息
}
def login(func):
def inner(*args,**kwargs):
if account["is_authenticated"] is False:
username = input("user:")
password = input("pasword:")
if username == account["username"] and password == account["password"]:
print("welcome login....")
account["is_authenticated"] = True
func(*args,**kwargs)
else:
print("wrong username or password!")
else:
print("用户已登录,验证通过...")
func(*args,**kwargs)
return inner
def home():
print("---首页----")
@login
def america():
# login() # 执行前加上验证
print("----欧美专区----")
def japan():
print("----日韩专区----")
@login
def henan(level):
# login() # 执行前加上验证
if level > 3:
print("vip专区")
else:
print("----河南专区----")
home()
america()
henan(4)
装饰器:用户登录
最新推荐文章于 2021-01-30 21:18:55 发布
这篇博客介绍了用户认证系统的设计,通过`login`装饰器实现登录验证。当用户未登录时,系统会提示输入用户名和密码,登录成功后用户信息会被标记为已认证。用户可以访问`home`、`america`和`henan`等区域,其中`henan`区域的访问可能需要特定权限。示例展示了如何在不同函数调用中嵌入认证逻辑。
摘要由CSDN通过智能技术生成