react-native-api-middleware-anisharai-v2
v1.0.3
Published
Lightweight Axios middleware for React Native that automatically injects AsyncStorage tokens and handles authentication responses.
Downloads
292
Maintainers
Readme
🚀 React Native API Middleware (Axios)
A lightweight and plug-and-play Axios middleware for React Native that simplifies API handling.
🔥 Features
✔ Automatically injects token from AsyncStorage into every API request ✔ Global request + response interceptors ✔ Optional auto logout callback on 401 Unauthorized ✔ Centralized reusable api instance → no need to configure Axios everywhere ✔ Works on Android, iOS, and Web (no platform dependencies)
Perfect for apps using token-based authentication. 💯
📦 Installation npm install react-native-api-middleware-anisharai-v2
or
yarn add react-native-api-middleware-anisharai-v2
⚙️ Setup import api, { configureApi } from "react-native-api-middleware-anisharai-v2";
configureApi({ baseUrl: "https://example.com/api/v1", logoutCallback: () => console.log("Logout triggered"), // optional errorCallback: (err) => console.log("Global API Error", err), // optional log: true // enable request/response console logs (optional) });
📌 Usage Examples GET api.get("/users") .then(res => console.log(res.data)) .catch(err => console.log(err));
POST api.post("/login", { email, password }) .then(res => console.log(res.data)) .catch(err => console.log(err));
PUT / PATCH / DELETE api.put("/profile", payload); api.patch("/projects/4", payload); api.delete("/users/10");
🔐 Auth Token Management
The middleware expects your token to be stored in AsyncStorage like:
await AsyncStorage.setItem("token", authToken);
and automatically attaches it to every request as:
Authorization: Bearer with all API requests — no manual header needed.
🚨 Auto Logout Behavior
If the API responds with 401 Unauthorized, it triggers:
logoutCallback()
This is fully optional — you can use:
App Type Example logout callback Redux () => dispatch(logOut()) Zustand () => useAuthStore.getState().logout() Context API () => context.logout() No auth state () => navigation.replace("Login") You decide what happens — navigation, token removal, redux logout, etc.
📝 Optional Global Error Callback
Receive error logs globally:
configureApi({ errorCallback: (err) => console.log("Global API Error", err) });
📬 Contact / Support
If you run into issues, have questions, or want to request features, feel free to reach out:
- Email: [email protected]
