1 00:00:02,190 --> 00:00:08,710 Agora, certifique-se de que também podemos fazer login e, no criador da ação de autenticação, para que, na pasta de 2 00:00:08,710 --> 00:00:12,720 ações da loja no arquivo de autenticação, possamos duplicar o criador 3 00:00:12,930 --> 00:00:18,210 da ação de inscrição, copiá-lo e renomeá-lo para o login, e isso também será necessário um 4 00:00:18,220 --> 00:00:22,870 email e uma senha, mas enviará a solicitação para um URL um pouco diferente. 5 00:00:22,870 --> 00:00:26,620 Se você der uma olhada nos documentos oficiais para fazer login, 6 00:00:26,620 --> 00:00:30,370 este é o seu URL. Agora, pode parecer quase igual, 7 00:00:30,490 --> 00:00:37,170 mas aqui, a diferença é esta palavra: faça login com senha, em vez de se inscrever após dois pontos de contas. 8 00:00:37,170 --> 00:00:40,380 É isso que precisamos mudar para ter um URL válido 9 00:00:40,400 --> 00:00:46,110 novamente e, claro, portanto, você também pode pensar em maneiras de mesclar isso em uma única função e 10 00:00:46,110 --> 00:00:51,750 reutilizar código. Vou explicitamente deixá-lo aqui, para deixar bem claro que temos duas funções separadas aqui e agora 11 00:00:51,750 --> 00:00:57,940 com isso, estamos enviando uma solicitação para este URL. Ainda precisamos anexar email, senha e esse campo 12 00:00:57,970 --> 00:01:03,250 de token seguro de retorno também, o que sempre deve ser verdadeiro e retornaremos 13 00:01:03,250 --> 00:01:08,630 praticamente os mesmos dados de quando nos inscrevemos, apenas um campo extra que basicamente nos 14 00:01:08,650 --> 00:01:16,100 informa se esse email faz parte de uma conta existente. Além disso, enviamos os mesmos dados aqui, podemos deixá-los como 15 00:01:16,150 --> 00:01:17,160 estão, queremos 16 00:01:17,160 --> 00:01:22,300 fazer essa verificação aqui e, portanto, aqui, também posso registrar meus dados de resposta. 17 00:01:22,300 --> 00:01:30,320 É 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 18 00:01:30,340 --> 00:01:31,890 façamos nada por 19 00:01:31,900 --> 00:01:34,120 enquanto, faremos isso em breve, já posso 20 00:01:34,120 --> 00:01:37,500 alterar o que enviamos . Com isso, vamos ver 21 00:01:37,510 --> 00:01:38,490 se isso 22 00:01:38,500 --> 00:01:44,290 funciona, mas para isso, é claro, são necessárias algumas alterações na tela de autenticação, porque agora, 23 00:01:44,290 --> 00:01:51,190 sempre pressionamos esse botão, sempre nos inscrevemos agora e não é isso que eu quero, em vez de sempre se 24 00:01:51,190 --> 00:01:58,210 inscrevendo, quero me inscrever ou fazer login, dependendo do modo em que estamos e esse modo deve ser alterado com 25 00:01:58,210 --> 00:02:01,730 a ajuda desse botão, que permite alternar entre os modos. 26 00:02:02,110 --> 00:02:07,990 Portanto, para poder alternar entre os modos, precisamos gerenciar algum estado adicional na tela de autenticação, basicamente um estado 27 00:02:07,990 --> 00:02:12,940 que nos permita descobrir se estamos no modo de login ou no modo de inscrição. 28 00:02:12,940 --> 00:02:22,560 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 29 00:02:22,560 --> 00:02:28,300 no modo de inscrição ou se isso é falso se estamos no modo de login basicamente 30 00:02:28,300 --> 00:02:29,040 porque 31 00:02:29,040 --> 00:02:31,680 esses são os dois modos que temos, certo? 32 00:02:31,710 --> 00:02:37,190 Então, se a inscrição é falsa inicialmente, porque, inicialmente, eu quero estar no modo de login e agora 33 00:02:37,190 --> 00:02:42,450 podemos usar a inscrição para determinar o que acontece quando pressionamos o botão de login, mas também 34 00:02:42,480 --> 00:02:45,740 o texto que produzimos lá. Então, vamos começar com 35 00:02:45,790 --> 00:02:48,090 o texto, aqui nem sempre quero dizer o 36 00:02:48,140 --> 00:02:51,320 login, em vez disso, quero verificar se a inscrição é verdadeira, 37 00:02:51,380 --> 00:02:57,020 então aqui quero dizer a inscrição e só quero dizer a inscrição se isso não for verdade e aqui, 38 00:02:57,020 --> 00:03:00,350 é claro, nem sempre quero dizer mudar para se inscrever, o 39 00:03:00,350 --> 00:03:03,020 que digo aqui depende do modo em que estamos. 40 00:03:03,020 --> 00:03:13,050 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 41 00:03:13,050 --> 00:03:20,190 seguida, o valor dinâmico seja uma string em que digo login, porque se a inscrição for verdadeira, mudamos 42 00:03:20,280 --> 00:03:25,340 para o modo de login ou, se a inscrição é falsa, 43 00:03:25,470 --> 00:03:32,360 mudamos para o modo de inscrição porque estamos no modo de login, para que altere o texto. 44 00:03:32,360 --> 00:03:39,890 Agora, aqui nesta função, quero chamar set é inscrever-se e basicamente invertê-lo, para isso podemos usar essa forma 45 00:03:39,890 --> 00:03:47,000 de função de atualizar isso onde obtemos nosso estado anterior, então, onde passo uma função para a 46 00:03:47,000 --> 00:03:52,740 função setter aqui e Retorno o que o estado anterior não é. 47 00:03:52,880 --> 00:03:58,430 Portanto, o estado anterior, é claro, é um booleano, porque, com a inscrição, estamos gerenciando um 48 00:03:58,460 --> 00:04:00,390 estado booleano que inicialmente é 49 00:04:00,620 --> 00:04:06,200 falso e agora aqui, portanto, recebo esse estado atual e defino o oposto como um novo estado. 50 00:04:06,200 --> 00:04:10,420 Portanto, se isso é verdade no momento, defino-o como falso, se for falso, defino-o como verdadeiro, é 51 00:04:10,430 --> 00:04:11,980 o que está acontecendo aqui. 52 00:04:12,810 --> 00:04:19,000 Agora, precisamos apenas garantir que coisas diferentes ocorram aqui e, para isso, vou renomear isso de 53 00:04:19,000 --> 00:04:28,060 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 54 00:04:28,810 --> 00:04:33,130 nesse manipulador de autenticação função, podemos verificar em que modo estamos. 55 00:04:33,370 --> 00:04:37,180 Portanto, aqui posso verificar se a inscrição é verdadeira e, se for 56 00:04:37,180 --> 00:04:45,110 esse o caso, é claro que quero despachar essa ação, então tudo bem. Caso contrário, se isso não for verdade, quero 57 00:04:45,110 --> 00:04:50,060 despachar a outra ação e, portanto, podemos mudar isso 58 00:04:50,060 --> 00:04:53,280 um pouco, despachar para lá e 59 00:04:53,540 --> 00:04:57,890 definir nossa ação aqui e agora minha ação 60 00:04:57,890 --> 00:05:10,190 é indefinida e, em seguida, defino a ação como esta ou defino action igual a auth actions login com valores de entrada de 61 00:05:10,190 --> 00:05:24,250 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 62 00:05:24,580 --> 00:05:26,940 enviar para lá. 63 00:05:26,980 --> 00:05:33,880 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 64 00:05:33,910 --> 00:05:40,750 de estarmos no modo de inscrição ou no modo de login. Com isso, somos realmente flexíveis e agora, se salvarmos 65 00:05:40,750 --> 00:05:48,860 isso, se eu mudar aqui, você também verá as atualizações de texto aqui no Android e, portanto, agora, se eu mudar 66 00:05:48,910 --> 00:05:56,390 para o modo de login, por isso, se isso indicar login e eu tentar fazer login aqui, certifique-se de inserir 67 00:05:56,390 --> 00:06:02,130 as mesmas credenciais que você usou antes para criar isso e eu pressiono login, isso 68 00:06:02,130 --> 00:06:03,300 parece muito 69 00:06:03,300 --> 00:06:06,730 bom, recebo aqui a saída do console com os 70 00:06:06,840 --> 00:06:09,240 dados que esse URL deve retornar. 71 00:06:09,240 --> 00:06:15,930 Portanto, parece que funciona e, com isso, somos capazes de se inscrever e fazer login, mas é claro que não estamos fazendo 72 00:06:15,930 --> 00:06:17,930 nada com esse token no momento 73 00:06:17,970 --> 00:06:22,740 e, é claro, também não temos gerenciamento de erros ou gerenciamento de estado de carregamento. 74 00:06:22,830 --> 00:06:24,690 Portanto, também precisamos adicionar essas coisas.