1. Nessa aula aqui nós vamos lá em context e vamos criar o login lá também, já que temos o registro já criado.

  2. Vamos criar login e o logout que temos dentro do AuthContextData, junto ao registro

    interface AuthContextData extends AuthState {
      register: (
        name: string,
        email: string,
        password: string,
        phone: string
      ) => Promise<void>;
      logout: () => void;
      login: (email: string, password: string) => Promise<void>;
    }
    
  3. Nós vamos agora nos métodos para poder completar também os métodos de logout e de login, junto ao de registro

    const methods = React.useMemo(
      () => ({
        logout: async () => {
          dispatch({ type: "SIGN_OUT", token: null, user: null });
          await SecureStore.deleteItemAsync("onebitshop-token");
          await AsyncStorage.removeItem("user");
        },
        login: async (email: string, password: string) => {
    		  const params = { email, password };
    
    		  const { status, data } = await authService.login(params);
    
    		  if (status === 400 || status === 401) {
    		    return;
    		  }
    
    		  dispatch({
    		    type: "SIGN_IN",
    		    token: data.token,
    		    user: data.user._id,
    		  });
    		},
        register: async (
          name: string,
          email: string,
          password: string,
          phone: string
        ) => {
          const params = { name, email, password, phone };
    
    			const loginParams = { email, password };
    
          const data = await authService.register(params);
    
          if (data.status === 400) {
            Alert.alert("Email já cadastrado.");
    
            return;
          }
    
          dispatch({
            type: "SIGN_IN",
            token: data?.data.token,
            user: data?.data.user._id,
          });
    
    			await authService.login(loginParams);
        },
      }),
      []
    );
    
  4. Dessa forma criamos o método de login e também já fizemos o redirecionamento do usuário quando ele fizer o registro e a mesma coisa com o logout