Teraz upewnijmy się, że możemy się również zalogować i do tego w kreatorze akcji auth, więc w folderze
akcji sklepu w pliku auth możemy zduplikować kreatora akcji rejestracji,
skopiować go i zmienić nazwę tej kopii, aby się zalogować, a to też będzie
potrzebne e-mail i hasło, ale wyśle żądanie pod nieco inny adres URL.
Jeśli rzucisz okiem na oficjalne dokumenty do logowania, to
jest twój adres URL. Teraz może wyglądać prawie tak
samo, ale tutaj różnica polega na tym, że należy zalogować się przy użyciu hasła zamiast rejestrować się po dwukropku konta.
Właśnie to musimy zmienić, aby znów mieć prawidłowy adres
URL, dlatego oczywiście możesz również pomyśleć o sposobach scalenia tej funkcji w jedną funkcję i ponownego użycia
kodu. Pozwolę, że podzielę się tutaj, aby było naprawdę jasne, że tutaj mamy dwie oddzielne funkcje,
a teraz wysyłamy zapytanie na ten adres URL. Nadal musimy dołączyć adres e-mail, hasło i
to pole bezpiecznego tokena zwrotnego, co zawsze powinno być prawdziwe, a otrzymamy prawie
takie same dane, jak podczas rejestracji, tylko jedno dodatkowe pole, które w zasadzie
mówi nam, czy ten e-mail jest częścią istniejącego konta. Poza tym wysyłamy tutaj te same dane, możemy je pozostawić
takie, jakie
są, chcemy mieć tę kontrolę tutaj, a zatem tutaj mogę również zapisać moje dane odpowiedzi.
Oczywiście nie chcę tutaj wysłać akcji rejestracji, ale zamiast tego wysłać nową akcję logowania, chociaż na razie też nic tam
nie robimy, wkrótce
to zrobimy, mogę już zmienić
to, co wysłaliśmy . Dzięki temu zobaczmy, czy
to działa,
ale do tego oczywiście konieczne są pewne zmiany na ekranie uwierzytelniania, ponieważ teraz tam, zawsze
kiedy naciskamy ten przycisk, zawsze rejestrujemy się teraz i nie tego chcę, zamiast zawsze się rejestruję, chcę się
zarejestrować lub zalogować w zależności od tego, w jakim trybie się znajdujemy, a ten tryb powinien być zmieniany za
pomocą tego przycisku, który pozwala nam przełączać się między trybami.
Aby więc móc przełączać się między trybami, musimy zarządzać jakimś dodatkowym stanem na ekranie uwierzytelniania, w zasadzie stanem,
który pozwala nam dowiedzieć się, czy jesteśmy w trybie logowania, czy w trybie rejestracji.
Więc tutaj używam mojego stanu i zaczynam od fałszu, ponieważ powinienem powiedzieć, że rejestracja i konfiguracja to rejestracja, a zatem mówi nam, czy obecnie
jesteśmy w trybie rejestracji, czy to fałsz, jeśli zasadniczo jesteśmy w trybie logowania ponieważ
to
są dwa tryby, które mamy, prawda?
Tak więc rejestracja jest początkowo fałszywa, ponieważ początkowo chcę być w trybie logowania, a teraz
możemy użyć rejestracji, aby ustalić, co się stanie, gdy klikniemy przycisk logowania, ale także
jaki tekst tam wyprowadzimy. Więc zacznijmy od tekstu,
tutaj nie zawsze chcę powiedzieć login,
zamiast tego chcę sprawdzić, czy rejestracja jest prawdą, tutaj
chcę powiedzieć rejestracja i chcę tylko zalogować się, jeśli to nie jest prawda i tutaj oczywiście nie
zawsze chcę powiedzieć przełącznik, aby się zarejestrować, to, co tu
mówię, zależy od trybu, w jakim się znajdujemy.
Więc tutaj użyję teraz tyknięć z przełącznikiem na, aby tutaj mógł wstrzyknąć wartość dynamiczną, która teraz zależy od rejestracji, a
następnie wartość dynamiczna jest ciągiem, w którym mówię logowanie, ponieważ jeśli rejestracja jest prawdą, przełączamy
się do trybu logowania lub jeśli rejestracja jest fałszywa,
przełączamy się do trybu rejestracji, ponieważ jesteśmy w trybie logowania, co powoduje zmianę tekstu.
Teraz tutaj, w tej funkcji, chcę wywołać set to zarejestruj się i w zasadzie to odwróć, do tego
możemy użyć tej formy funkcji do aktualizacji tego, skąd otrzymujemy nasz poprzedni stan, więc gdzie przekazuję funkcję
do funkcji setter tutaj i Zwracam to, co poprzedni stan nie jest.
Tak więc poprzedni stan to oczywiście wartość logiczna, ponieważ dzięki rejestracji, zarządzamy stanem
logicznym, który początkowo jest
fałszywy, a teraz tutaj otrzymuję ten stan bieżący i ustawiam przeciwnie jako nowy stan.
Więc jeśli jest to obecnie prawdą, ustawiam na fałsz, jeśli to fałsz, ustawiam na
prawdę, tak właśnie się dzieje.
Teraz musimy tylko upewnić się, że dzieją się tutaj różne rzeczy, dlatego zmienię nazwę z procedury
obsługi rejestracji na procedurę obsługi autoryzacji, aby była bardziej ogólna pod względem nazewnictwa i oczywiście powiąże moją procedurę obsługi autoryzacji tam i teraz w
tej funkcji obsługi autoryzacji funkcję, możemy sprawdzić w jakim trybie jesteśmy.
Więc tutaj mogę sprawdzić, czy rejestracja jest prawdą, a jeśli
tak, to oczywiście chcę wysłać tę akcję, więc nie ma sprawy. W przeciwnym razie, jeśli to nie jest
prawda, chcę wysłać inną akcję, a zatem możemy
nawet trochę to zmienić, wysłać
tam i zdefiniować naszą akcję tutaj, a
teraz moja akcja początkowo jest niezdefiniowana, a następnie ustawiam akcję na tę lub ustawiam akcja równa się autoryzacjom akcji logowanie
przy użyciu wartości wejściowych stanu formularza e-mail i wartości wejściowych stanu formularza hasło, podobnie jak teraz, a teraz akcja jest zmienną, którą mogę przekazać,
aby tam wysłać.
Dlatego zawsze wysyłam tę akcję, ale jest ona wynikiem rejestracji akcji uwierzytelniania lub logowania akcji uwierzytelniania w zależności od tego,
czy jesteśmy w trybie rejestracji, czy w trybie logowania. Dzięki temu jesteśmy bardzo elastyczni i teraz, jeśli
to zapiszemy, jeśli przełączy się tutaj, zobaczysz także tutaj aktualizacje tekstowe na Androidzie, a zatem teraz przejdę do trybu
logowania, więc jeśli to powie, zaloguj się i spróbuję się zalogować tutaj, upewnij się, że wprowadzasz te same
dane uwierzytelniające, których użyłeś wcześniej do utworzenia tego, i naciskam login, wygląda to
całkiem nieźle,
otrzymuję dane wyjściowe mojej konsoli z danymi, które
ten adres URL powinien zwrócić.
Wygląda na to, że działa i dzięki temu jesteśmy w stanie zarejestrować się i zalogować, ale oczywiście
nie robimy teraz nic z
tym tokenem i oczywiście nie mamy zarządzania błędami ani zarządzania stanem ładowania.
Te rzeczy też będziemy musieli dodać.