public function destroy($hash = null)
    {
        // If the hash is not received, get it from the request
        $hash = $hash?: $this->app->request->token();

        // Abort if the file does not exist
        $path = $this->path($hash);
        if (!file_exists($path)) {
            return true;
        }

        // Otherwise, remove the token file
        $success = unlink($path);
        if (!$success) {
            throw new Exception("The session could not be erased", 500);
        }

        // Return success
        return $success;
    }