A retired CIA analyst alleges a senior US military chief refused Donald Trump access to nuclear launch codes during a heated White House meeting.