Estoy usando expo React Native para desarrollar mi aplicación, Redux para administración de estado, ExpressJS para backend, MongoDB como base de datos.
Estoy tratando de obtener los datos de los usuarios registrados, los tokens JWT no se guardan en las cookies. No sé si las cookies funcionan con React Native o no. He probado la API con postman , la API funciona y también los JWT Tokens se guardan en cookies cuando lo pruebo con la extensión VS Code de postman o thunder-client . Aquí está el código:
exports.getUserDetails = catchAsyncErrors(async (req, res, next) => { const user = await User.findById(req.user.id); if (!user) { return next(new ErrorHandler("User not found", 404)); } res.status(200).json({ success: true, user, }); }); export const LoadUser = () => async (dispatch) => { try { dispatch({ type: "LOAD_USER_REQUEST" }); const { data } = await axios.get(`${API_URL}/api/auth/me`); dispatch({ type: "LOAD_USER_SUCCESS", payload: data.user, //Not loading data. }); } catch (error) { dispatch({ type: "LOAD_USER_FAIL", payload: error.response.data.message, }); } }; import { Provider as RNP_Provider } from "react-native-paper"; import { Provider } from "react-redux"; import Index from "./Index"; import { LoadUser } from "./actions/authAction"; import store from './store' import { useEffect } from "react"; export default function App() { useEffect(() => { store.dispatch(LoadUser()); }, []) return ( <Provider store={store}> <RNP_Provider> <Index /> </RNP_Provider> </Provider> ); }No existen las cookies en las aplicaciones móviles creadas en ReactNative. Lo que puede usar son AsyncStorages para Android/iOS y EncryptedStorage, búsquelos en npm y lea la documentación, ¡le garantizo que encontrará sus respuestas allí!
También puede usar algún tipo de contexto si desea que sus tokens se guarden solo para una sesión, se sugiere usar las tiendas para los valores que desea guardar durante más tiempo.
EncryptedStorage guarda valores incluso después de desinstalar la aplicación, así que tenga cuidado con eso :)