Agora, certifique-se de que também podemos fazer login e, no criador da ação de autenticação, para que, na pasta de
ações da loja no arquivo de autenticação, possamos duplicar o criador
da ação de inscrição, copiá-lo e renomeá-lo para o login, e isso também será necessário um
email e uma senha, mas enviará a solicitação para um URL um pouco diferente.
Se você der uma olhada nos documentos oficiais para fazer login,
este é o seu URL. Agora, pode parecer quase igual,
mas aqui, a diferença é esta palavra: faça login com senha, em vez de se inscrever após dois pontos de contas.
É isso que precisamos mudar para ter um URL válido
novamente e, claro, portanto, você também pode pensar em maneiras de mesclar isso em uma única função e
reutilizar código. Vou explicitamente deixá-lo aqui, para deixar bem claro que temos duas funções separadas aqui e agora
com isso, estamos enviando uma solicitação para este URL. Ainda precisamos anexar email, senha e esse campo
de token seguro de retorno também, o que sempre deve ser verdadeiro e retornaremos
praticamente os mesmos dados de quando nos inscrevemos, apenas um campo extra que basicamente nos
informa se esse email faz parte de uma conta existente. Além disso, enviamos os mesmos dados aqui, podemos deixá-los como
estão, queremos
fazer essa verificação aqui e, portanto, aqui, também posso registrar meus dados de resposta.
É claro que não quero enviar uma ação de inscrição aqui, mas enviar uma nova ação de login depois disso, embora também não
façamos nada por
enquanto, faremos isso em breve, já posso
alterar o que enviamos . Com isso, vamos ver
se isso
funciona, mas para isso, é claro, são necessárias algumas alterações na tela de autenticação, porque agora,
sempre pressionamos esse botão, sempre nos inscrevemos agora e não é isso que eu quero, em vez de sempre se
inscrevendo, quero me inscrever ou fazer login, dependendo do modo em que estamos e esse modo deve ser alterado com
a ajuda desse botão, que permite alternar entre os modos.
Portanto, para poder alternar entre os modos, precisamos gerenciar algum estado adicional na tela de autenticação, basicamente um estado
que nos permita descobrir se estamos no modo de login ou no modo de inscrição.
Então, aqui eu uso meu estado e começo com false, porque isso deve significar se inscrever e definir é se inscrever e, portanto, informa se estamos atualmente
no modo de inscrição ou se isso é falso se estamos no modo de login basicamente
porque
esses são os dois modos que temos, certo?
Então, se a inscrição é falsa inicialmente, porque, inicialmente, eu quero estar no modo de login e agora
podemos usar a inscrição para determinar o que acontece quando pressionamos o botão de login, mas também
o texto que produzimos lá. Então, vamos começar com
o texto, aqui nem sempre quero dizer o
login, em vez disso, quero verificar se a inscrição é verdadeira,
então aqui quero dizer a inscrição e só quero dizer a inscrição se isso não for verdade e aqui,
é claro, nem sempre quero dizer mudar para se inscrever, o
que digo aqui depende do modo em que estamos.
Então, aqui, agora usarei back ticks com switch para, para que aqui eu possa injetar um valor dinâmico que agora depende da inscrição e, em
seguida, o valor dinâmico seja uma string em que digo login, porque se a inscrição for verdadeira, mudamos
para o modo de login ou, se a inscrição é falsa,
mudamos para o modo de inscrição porque estamos no modo de login, para que altere o texto.
Agora, aqui nesta função, quero chamar set é inscrever-se e basicamente invertê-lo, para isso podemos usar essa forma
de função de atualizar isso onde obtemos nosso estado anterior, então, onde passo uma função para a
função setter aqui e Retorno o que o estado anterior não é.
Portanto, o estado anterior, é claro, é um booleano, porque, com a inscrição, estamos gerenciando um
estado booleano que inicialmente é
falso e agora aqui, portanto, recebo esse estado atual e defino o oposto como um novo estado.
Portanto, se isso é verdade no momento, defino-o como falso, se for falso, defino-o como verdadeiro, é
o que está acontecendo aqui.
Agora, precisamos apenas garantir que coisas diferentes ocorram aqui e, para isso, vou renomear isso de
manipulador de inscrição para manipulador de autenticação para ser mais genérico em sua nomeação e, é claro, vincular meu manipulador de autenticação lá e agora
nesse manipulador de autenticação função, podemos verificar em que modo estamos.
Portanto, aqui posso verificar se a inscrição é verdadeira e, se for
esse o caso, é claro que quero despachar essa ação, então tudo bem. Caso contrário, se isso não for verdade, quero
despachar a outra ação e, portanto, podemos mudar isso
um pouco, despachar para lá e
definir nossa ação aqui e agora minha ação
é indefinida e, em seguida, defino a ação como esta ou defino action igual a auth actions login com valores de entrada de
estado do formulário email e senha de valores de entrada do estado do formulário, assim e agora action é uma variável que eu posso passar para
enviar para lá.
Portanto, sempre envio esta ação, mas essa ação é o resultado da inscrição de ações de autenticação ou do login de ações de autenticação, dependendo
de estarmos no modo de inscrição ou no modo de login. Com isso, somos realmente flexíveis e agora, se salvarmos
isso, se eu mudar aqui, você também verá as atualizações de texto aqui no Android e, portanto, agora, se eu mudar
para o modo de login, por isso, se isso indicar login e eu tentar fazer login aqui, certifique-se de inserir
as mesmas credenciais que você usou antes para criar isso e eu pressiono login, isso
parece muito
bom, recebo aqui a saída do console com os
dados que esse URL deve retornar.
Portanto, parece que funciona e, com isso, somos capazes de se inscrever e fazer login, mas é claro que não estamos fazendo
nada com esse token no momento
e, é claro, também não temos gerenciamento de erros ou gerenciamento de estado de carregamento.
Portanto, também precisamos adicionar essas coisas.