Also was hier rein kommt ist: Du authentifizierst nicht (immer) selbst sondern vertraust einer anderen Stelle.
Ein User kann sich z.B. mit Name / Passwort direkt bei dir anmelden. Da wird dann das Passwort im Hash gespeichert wie es schon richtig gesagt wurde.
Dann vertraust Du aber auch anderen Stellen. So kann ein User, der sich angemeldet hat, weitere Dinge hinterlegen. Beispiele findest Du oft: Hier im Forum kann an seinen Google Account hinterlegen und sich dann mit dem Google Account anmelden. Damit dies funktioniert, muss erst einmal ein Vertrauensverhältnis geschaffen werden: Das Forum vertaut Google. Wenn Google etwas sagt, dann wird das so stimmen. Das Vertrauen ist hinterlegt im Forum, sprich bei Google dürfte es so sein, dass man das Forum bei Google hinterlegt hat (spezielle URLs die zur Anmeldung funkionieren sollen) und Google hat auch gewisse Daten zur Hinterlegung an das Forum gegeben, so dass Google auch das Forum kennt und identifizieren kann.
Und schon funktioniert die Anmeldung:
- Der User sagt im Forum: Ich will mich über Google anmelden.
- Das Forum gibt das weiter an Google. Google fragt dann ggf. nach eine Anmeldung. Oder der User ist bereits angemeldet.. Auf jeden Fall kommt dann am Ende ein Aufruf beim Forum heraus, der besagt, dass ein User sich angemeldet hat. Das sind irgendwelche Daten, die den User identifizieren. Damit kann das Forum dann prüfen: Stimmen diese Daten mit den hinterlegten Daten überein? Wenn dem so ist, dann ist der User angemeldet.
Das ist so ein kleines Schema, etwas vereinfacht und grob dargestellt. Es gibt da auch diverse Varianten. Aber es geht immer so in der Art.
Deine App auf dem Handy will auch die Autorisierung per Fingerabdruck anbieten? Dazu vertraut es dann dem Android Service für Fingerabdrücke. Dein Anwender muss das erst einmal hinterlegen, d.h. in der App muss das einmal entsprechend konfiguriert werden vom User. Danach kann man sich dann bei der Anmeldung auch damit autorisieren: Einfach weil die App eben diesem Service vertraut.
Das ist übrigens ein ganz übliches Pattern. Hintergrund ist, dass dies ein sensibles Thema ist und auch ständig neue Features dazu kommen. Also will man als Entwickler das nicht selbst machen (Hoch komplexes Thema, was will ich mich da einarbeiten?) und dann auch ständig neue Features implementieren (User wollen 2FA, wollen Drittdienste, wollen irgendwelche Hardware, ..... ) und dann noch so Dinge wie SSO (Single Sign On). Das wird also schnell deutlich umfangreicher. Daher greift man oft gerne auf Standards zurück um dann fertige Produkte zu nutzen. Eine Applikation kann z.B. OAUTH2 nutzen. Dann kann da ein beliebigs Produkt verwendet werden. Eine Firma hat ein eigenes Identtity Management? So dies den Standard auch unterstützt, kann die App dies nutzen. Oder es wird ein Produkt genutzt wie z.B. KeyCloak:
https://www.keycloak.org/
Das wirklich nur als ganz kurz kurzer Überblick. Da kann man sich sehr lange und viel einarbeiten. Das erste, was man sich anschauen sollte, sind die üblichen Abläufe, denn wenn man die verstanden hat, dann kann man die entsprechenden Standards nutzen.
Generell aber:
Flls Deine App sich woanders anmelden soll wo der User normalerweise User/Passwort verwendet, dann solltest Du da nach einer API schauen! Da wird sich oft etwas finden, das dann Deine App eine gewisse Zeit berechtigt. Dann kann der User die Anmeldung machen und die App nutzen ohne sich erneut anzumelden. Ist sowas nicht vorgesehen, dann ist es extrem kritisch, User /Passwort zu speichern. Egal ob verschlüsselt oder nicht. Du bist in der Lage, es zu entschlüsseln und was die App kann kann jeder, der die Kontrolle über das Gerät hat. Also ein ganz dickes NO GO!