You're right. But at this time I don't know how we can determine if guest tries to post comment without entering Name/Email or this is registered user with time out.
We could try next fix:
Open file /components/com_jcomments/jcomments.ajax.php and replace:
if (empty($values['name'])) {
JCommentsAJAX::showErrorMessage(JText::_('ERROR_EMPTY_NAME'), 'name');
with:
if (isset($values['userid']) && intval($values['userid']) > 0) {
JCommentsAJAX::showErrorMessage(JText::_('Your session has expired. Please log in again.'));
} else if (empty($values['name'])) {
Open file /components/com_jcomments/jcomments.php and replace:
}
$result = $tmpl->renderTemplate('tpl_form');
with
}
$result = $tmpl->renderTemplate('tpl_form');
if ($my->id) {
$result = str_replace('</form>', '<input type="hidden" name="userid" value="'.$my->id.'" /></form>', $result);
}