Perché il sito terzo possa leggere il token dall'html ed averlo uguale a quello con cui verrà confrontato dopo l'invio del form dovrebbe anche aver "rubato" la sessione (il token dipende dal session_id che è unico per ogni sessione), che però è legata ad un cookie che è sulla macchina dell'utente loggato e probabilmente anche settato come HttpOnly, quindi non facilmente leggibile.

In un login non ha molto senso, basta validare correttamente username e password. Anche perché solitamente la sessione si fa partire dopo il login e quindi prima non avresti nemmeno il session_id per generare un token.

Non ho capito cosa intendi quando dici che lo verifichi nelle varie pagine dello script, lo verifichi solo dove c'è un form o comunque un invio di dati da parte dell'utente? Oppure in ogni pagina del sito a prescindere dalla sua funzione?