CakePHPのAuth/Securityコンポーネントは、できの悪いところも多いですが、簡単なのでとりあえず使うのに便利です。
しかし、最近はやりのOAuthを使う場合、core.php で Security.level が middle 以上に設定されていると、コールバック後にエラーになってしまうことがあります。
middle 以上では、セッションのリファラーチェックが働くため、コールバック時にリファラーが違うためにセッションが切れてしまうようですね。
通常、セッションにキーを保存しておくと思うので、これでは困ります。
色々解決方法がありますが、簡単なのは、
Configure::write('Security.level', 'low');
です。
もちろん、これではセキュリティが下がるという懸念もありますが、
むしろhighに設定して内部でどんなセキュリティ対策をしているか理解しない方が遙かに危険です。
lowに設定することで、セッション時間が延び、リファラチェックやフォームのハッシュ整合性チェックなどが無視されますが、それらを理解した上で、必要に応じてこれらを自前で対策した方が、トータルで手間と安全性が優れるケースもありそうです。