用python 写一个token过期的验证
时间: 2023-08-04 22:17:32 浏览: 52
好的,下面是一个简单的token过期验证的示例:
```python
import hashlib
import uuid
import time
users = {
'admin': 'admin123',
'user1': '123456'
}
tokens = {}
def generate_token(username):
# 生成token
salt = uuid.uuid4().hex
token = hashlib.sha256((username + salt).encode()).hexdigest()
return token
def login(username, password):
# 登录验证
if username in users and users[username] == password:
token = generate_token(username)
tokens[token] = time.time() + 3600 # 设置token过期时间为1小时后
return {'token': token}
else:
return None
def check_token(token):
# 检查token是否过期
if token in tokens and tokens[token] > time.time():
tokens[token] = time.time() + 3600 # 更新token过期时间为1小时后
return True
else:
return False
# 测试
user_info = login('admin', 'admin123')
if user_info:
token = user_info['token']
print('登录成功,token为:', token)
time.sleep(3600) # 模拟1小时后
if check_token(token):
print('token未过期')
else:
print('token已过期')
else:
print('登录失败')
```
以上代码中,我们在generate_token函数中,将token和当前时间加上1小时的时间戳保存在tokens字典中。在check_token函数中,我们首先检查token是否存在于tokens字典中,然后再检查token的过期时间是否大于当前时间。如果token未过期,我们就更新token的过期时间为1小时后,然后返回True,否则返回False。在测试中,我们先登录并获取token,然后模拟1小时后,再调用check_token函数进行检查,看看token是否过期。如果token未过期,就输出token未过期,否则输出token已过期。