Erst wenn ich mich eingeloggt habe ist $this->Auth->user('id') vorhanden.
Genau!
Das heißt nachdem ich frage ob $this->Auth->user() vorhanden ist wird nichts mehr gesendet, demnach ist auch $this->data doch nicht vorhanden oder?
$this->data dürfte ebenfalls vorhanden sein, denn mit $this->data werden in CakePHP üblicherweise die Daten aus einem Formular an den Controller zurückgegeben. Die Auth-Componente hat aber diese Daten ebenfalls ausgewertet und bei Gültigkeit übernommen. Deshalb ist es richtig mit if ($this->Auth->user()) das Login zu überprüfen.
Also so verstehe ich das jedenfalls.