diff --git a/src/Guard.php b/src/Guard.php index 1f3aa26..a026457 100644 --- a/src/Guard.php +++ b/src/Guard.php @@ -65,13 +65,25 @@ public function __invoke(Request $request) $accessToken = $model::findToken($token); - if (! $this->isValidAccessToken($accessToken)) { + if (! $this->isValidAccessToken($accessToken) || + ! $this->supportsTokens($accessToken->tokenable)) { return; } - return $this->supportsTokens($accessToken->tokenable) ? $accessToken->tokenable->withAccessToken( - tap($accessToken->forceFill(['last_used_at' => now()]))->save() - ) : null; + if (method_exists($accessToken->getConnection(), 'hasModifiedRecords') && + method_exists($accessToken->getConnection(), 'recordsHaveBeenModified')) { + tap($accessToken->getConnection()->hasModifiedRecords(), function ($hasModifiedRecords) use ($accessToken) { + $accessToken->forceFill(['last_used_at' => now()])->save(); + + $accessToken->getConnection()->recordsHaveBeenModified($hasModifiedRecords); + }); + } else { + $accessToken->forceFill(['last_used_at' => now()])->save(); + } + + return $accessToken->tokenable->withAccessToken( + $accessToken + ); } }