Tzn czy mogę szyfrować hasła i zapisywać je w bazie danych?
Nie, takie operacji robi back-end i koniec kropka. Ty z frontu tylko wysyłasz dane, mogą sobie byc jakos zaszyfrowane itp. to nie ma znaczenia tutaj, ostateczne szyfrowanie i zapis zawsze ale to zawsze robi back-end. Jeśli dają Ci API to musisz mieć endpoint to zapisu usera, jeśli go nie ma to ja bym napisał wprost, że taka operacja musi być robiona w API i client-side to nie miejsce na takie rzeczy.
I później również z poziomu Reacta logować się i wyświetlać wartość strony warunkowaną tym czy użytkownik to user czy admin?
To już jak najbardziej właśnie zabawa client-side. Możesz zrobić sobie warunki na froncie decydujące o tym, jaki content wyświetlić. Natomiast info o tym czy to user zwykły czy admin musi być z back-endu, ja preferuję np. jakąs flagę przy danych usera. Natomiast tak czy inaczej nawet jeśli masz w response flagę admin to i tak każdy strzał jako admin musi być zabezpieczony w API wcześniejszym sprawdzeniem, czy na pewno jesteś kontem admina.
Co do tego dostępu jako zalogowany to najprościej to chyba zrobić po normalnemu, czyli zrobić odpowiednie guardy na routingu.