Ahora asegurémonos de que también podemos iniciar sesión y para eso en el creador de acciones de autenticación, por lo que en la
carpeta de acciones de la tienda en el archivo de autenticación, podemos duplicar
el creador de acciones de registro, copiarlo y cambiar el nombre de esa copia para iniciar sesión y esto
también necesitará un correo electrónico y una contraseña, pero enviará la solicitud a una URL ligeramente diferente.
Si echas un vistazo a los documentos oficiales para iniciar
sesión, esta es tu URL. Ahora puede parecer casi igual,
pero aquí, la diferencia es esta palabra, inicie sesión con contraseña, en lugar de registrarse después de las dos puntos.
Esto es lo que necesitamos cambiar para tener una URL válida
nuevamente y, por supuesto, también podría pensar en formas de fusionar esto en una función y reutilizar el código.
Dejaré explícitamente que se divida aquí para que quede realmente claro que tenemos dos funciones separadas aquí y ahora
con eso, estamos enviando una solicitud a esta URL. Todavía necesitamos adjuntar correo electrónico, contraseña y este
campo de token seguro de devolución, que siempre debe ser verdadero y recuperaremos casi
los mismos datos que cuando nos registramos, solo un campo adicional que básicamente nos dice
si este correo electrónico es parte de una cuenta existente. Aparte de eso, enviamos los mismos datos aquí, podemos dejarlos como
están, queremos
tener esta verificación aquí y, por lo tanto, aquí, también puedo registrar mis datos de respuesta.
Por supuesto, no quiero enviar una acción de registro aquí, sino enviar una nueva acción de inicio de sesión a partir de entonces, aunque tampoco
estamos haciendo nada allí
por ahora, pronto lo haremos, ya puedo
cambiar lo que enviamos . Con eso, veamos si eso
funciona, pero
para esto, por supuesto, se requieren algunos cambios en la pantalla de autenticación porque en este momento,
siempre cuando presionamos este botón, siempre nos registramos ahora y eso no es lo que quiero, en lugar de siempre que
me registre, quiero registrarme o iniciar sesión dependiendo del modo en el que nos encontremos y este modo debería poder cambiarse con
la ayuda de este botón que nos permite cambiar entre modos.
Entonces, para poder cambiar entre modos, necesitamos administrar un estado adicional en la pantalla de autenticación, básicamente un estado que
nos permite saber si estamos en modo de inicio de sesión o en modo de registro.
Así que aquí uso mi estado y empiezo con falso porque esto debería decir es registrarse y configurar es registrarse y, por lo tanto, nos dice si estamos actualmente en
modo de registro o si eso es falso si básicamente estamos en el modo de inicio de
sesión porque
estos son los dos modos que tenemos, ¿verdad?
Entonces, el registro es falso inicialmente porque inicialmente quiero estar en modo de inicio de sesión y
ahora podemos usarlo para determinar qué sucede cuando presionamos el botón de inicio de sesión, pero también
qué texto enviamos allí. Comencemos con el texto,
aquí no siempre quiero decir iniciar sesión,
en cambio quiero verificar si el registro es verdadero, luego
aquí quiero decir registrarse y solo quiero decir iniciar sesión si esto no es cierto y aquí, por
supuesto, no siempre quiero decir cambiar para registrarme, lo que digo
aquí depende del modo en que nos encontremos.
Entonces, aquí, usaré los ticks de retroceso con el interruptor a, de modo que aquí puedo inyectar un valor dinámico que ahora depende de la inscripción y
luego el valor dinámico es una cadena donde digo iniciar sesión porque si la inscripción es verdadera, cambiamos al
modo de inicio de sesión o si el registro es falso, cambiamos
al modo de registro porque estamos en modo de inicio de sesión, de modo que cambia el texto.
Ahora, aquí en esta función, quiero llamar a set es inscribirse y básicamente invertirlo, para esto podemos usar esa
forma de función de actualizar esto donde obtenemos nuestro estado anterior, entonces donde paso una función a
la función setter aquí y Devuelvo lo que el estado anterior no es.
Entonces, el estado anterior, por supuesto, es un valor booleano porque con el registro, estamos administrando un estado
booleano que inicialmente es falso
y ahora aquí, por lo tanto, obtengo ese estado actual y configuro lo contrario como un estado nuevo.
Entonces, si esto es cierto actualmente, lo configuro como falso, si era falso, lo configuro como verdadero, eso
es lo que está sucediendo aquí.
Ahora solo necesitamos asegurarnos de que sucedan cosas diferentes aquí y para eso, cambiaré el nombre de este
controlador de registro al controlador de autenticación para que sea más genérico en su denominación y, por supuesto, vincularé mi controlador de autenticación allí y ahora
en ese controlador de autenticación función, podemos comprobar en qué modo estamos.
Entonces, aquí puedo verificar si el registro es verdadero y si ese
es el caso, entonces, por supuesto, quiero enviar esta acción, así que está bien. De lo contrario, si eso no es cierto,
quiero despachar la otra acción y, por lo tanto, incluso
podemos cambiar esto un poco, despachar allí
y definir nuestra acción aquí y ahora mi acción
inicialmente no está definida y luego configuro la acción para esto o configuro la acción es igual a las acciones de autenticación, inicie sesión con los
valores de entrada del estado del formulario, correo electrónico y contraseña de los valores de entrada del estado del formulario, y ahora la acción es una variable que puedo
pasar para enviarla allí.
Por lo tanto, siempre despacho esta acción, pero esta acción es el resultado del registro de acciones de autenticación o del inicio de sesión de acciones de autenticación, dependiendo
de si estamos en modo de registro o en modo de inicio de sesión. Con eso, somos realmente flexibles y ahora, si guardamos
esto, si cambio aquí, también verá las actualizaciones de texto aquí en Android y, por lo tanto, ahora si cambio al modo
de inicio de sesión, así que si esto dice inicio de sesión e intento iniciar sesión aquí, asegúrese de ingresar
las mismas credenciales que usó antes para crear esto y presiono iniciar sesión, esto se
ve bastante
bien, obtengo la salida de mi consola aquí con
los datos que esta URL debería devolver.
Parece que funciona y con eso, podemos registrarnos e iniciar sesión, pero por supuesto no estamos haciendo nada con ese
token en este momento y,
por supuesto, tampoco tenemos administración de errores o una administración de estado de carga.
Estas son cosas que también tendremos que agregar.