unsign不支持设置max_age参数
时间: 2023-12-22 08:03:06 浏览: 90
非常抱歉,我的回答有误。在django.core.signing模块中,unsign函数确实不支持max_age参数。如果要检查签名是否过期,可以使用TimestampSigner类。
下面是一个例子:
```
from django.core.signing import TimestampSigner
import time
signer = TimestampSigner()
signed_value = signer.sign('hello', max_age=10)
print(signed_value)
time.sleep(5)
value = signer.unsign(signed_value, max_age=10)
print(value)
time.sleep(6)
value = signer.unsign(signed_value, max_age=10)
print(value)
```
在这个例子中,我们首先创建了一个TimestampSigner对象,然后使用signer.sign()函数对字符串'hello'进行签名,并将签名结果打印出来。然后我们等待5秒钟,再使用signer.unsign()函数对签名结果进行解码,解码后的值应该等于'hello'。接着我们再等待6秒钟,再次使用signer.unsign()函数对签名结果进行解码,这时会抛出SignatureExpired异常,表示签名已经过期。
在TimestampSigner类中,max_age参数用于指定签名的有效期,单位为秒。如果签名超过了有效期,unsign()函数会抛出SignatureExpired异常。
阅读全文