It seems to me that "have to" expresses an external obligation; "need to" expresses something more psychological, more internal. "have to" is stronger than "need to". See .
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.