检查令牌是否在Laravel中过期

时间:2018-05-29 09:18:53

标签: php laravel

我有包含列的表标记:user_idtokenexpires_at

示例:

我有令牌:12345,对我来说,他的到期日期为:2018-06-05

当我生成新令牌时,我最多会生成7天..

我如何在模特中检查这个?

我尝试使用模型中的范围:

public function scopeExpired($query) {
    return $this->where('expires_at', '<=', Carbon::now())->exists();
}

但不行。总是假..

1 个答案:

答案 0 :(得分:5)

我总是按照以下方式做这样的事情。请注意,您需要expires_at字段作为模型的属性。

// Probably on the user model, but pick wherever the data is
public function tokenExpired()
{
    if (Carbon::parse($this->attributes['expires_at']) < Carbon::now()) {
        return true;
    }
    return false;
}

然后从任何地方打电话:

$validToken = $user->tokenExpired();

// Or realistically

if ($user->tokenExpired()) {
    // Do something
}