Ho risolto - questo è il processo che sto seguendo nel caso in cui qualcuno sia interessato.
Durante la registrazione iniziale, l'utente inserisce login e password. Entrambi sono sottoposti a hash, inviati tramite HTTPS al server.
Server DB salva l'hash di accesso del client e l'output in password_hash ($ pass, PASSWORD_BCRYPT, ["cost" = > 12]) nel db.
Successivamente, durante il processo di accesso, l'utente inserisce login e password. Entrambi sono sottoposti a hash, inviati tramite HTTPS al server.
Il client richiede al server di cercare il DB per il loginhash, recupera l'output password_hash.
se password_verify ($ clientpass, $ dbpass) restituisce true, quindi la password è valida, altrimenti false / password non valida.
Questo funziona per me.
Perché faccio hash l'utente e la password sul client anche se passano sul filo come https? Perché le lunghezze fisse sono più veloci da cercare nel DB (io mysql prepara tutte le mie query per assicurarmi di non dipendere da dati client sporchi). Anche perché, anche se i dati vengono crittografati, preferisco una lunga sequenza di caratteri sul filo rispetto a una breve sequenza che potrebbe contenere un nome utente / password: nel mio mondo, mi sembra migliore anche se credo da quello che ho letto ottenere qualcosa in più per lo sforzo.