簡體   English   中英

如何檢查距模型對象創建時間是否超過10分鍾?

[英]How can I check whether time from model object created time is over 10mins?

models.py

@python_2_unicode_compatible
class UserAuthToken(models.Model):

    email = models.ForeignKey(UserSubEmail)
    token = models.CharField(max_length=34, unique=True)
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return "AuthToken for %s" % self.email

我想檢查令牌創建時間到現在之間的經過時間,因此,如果令牌創建時間超過10分鍾,則可以識別此令牌無效。

views.py

def create_email_confirm_key(request, uid, token):
    try:
        user_authtoken = UserAuthToken.objects.get(uid=uid)
    except (TypeError, ValueError, OverflowError, User.DoesNotExist):
        user_authtoken = None

    if not 'user_authtoken is created before more than 10minutes' :
        This token is valid and do something

如何檢查the token creatednow之間the token created時間是否超過10分鍾?

您始終可以使用django.utils.timezone從當前時間計算增量:

from django.utils.timezone import now, timedelta

if now() - user_authtoken.created <= timedelta(seconds=10*60):
    # token valid

但是我建議您看看django的Cryptographic簽名 它使您可以驗證帶有時間戳的簽名並為您處理所有增量計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM