Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Foundation\Http;use Illuminate\Support\Carbon;use Symfony\Component\HttpFoundation\Cookie;class MaintenanceModeBypassCookie{/*** Create a new maintenance mode bypass cookie.** @param string $key* @return \Symfony\Component\HttpFoundation\Cookie*/public static function create(string $key){$expiresAt = Carbon::now()->addHours(12);return new Cookie('laravel_maintenance', base64_encode(json_encode(['expires_at' => $expiresAt->getTimestamp(),'mac' => hash_hmac('sha256', $expiresAt->getTimestamp(), $key),])), $expiresAt, config('session.path'), config('session.domain'));}/*** Determine if the given maintenance mode bypass cookie is valid.** @param string $cookie* @param string $key* @return bool*/public static function isValid(string $cookie, string $key){$payload = json_decode(base64_decode($cookie), true);return is_array($payload) &&is_numeric($payload['expires_at'] ?? null) &&isset($payload['mac']) &&hash_equals(hash_hmac('sha256', $payload['expires_at'], $key), $payload['mac']) &&(int) $payload['expires_at'] >= Carbon::now()->getTimestamp();}}