1.0.1 • Published 5 months ago
react-role-auth-msh v1.0.1
React Role Auth
A lightweight, type-safe role-based access control provider for React applications.
Features
- 👥 Role-based access control
- 🛡️ Protected route/component wrapper
- ⚛️ Modern React hooks API
- 📦 Zero dependencies (except React)
Installation
npm i react-role-auth-msh
Usage
- Wrap your app with AuthProvider:
import { AuthProvider } from "react-role-auth-msh";
const user = {
id: "1",
email: "user@example.com",
roles: ["admin", "user"],
};
function App() {
return (
<AuthProvider user={user}>
<YourApp />
</AuthProvider>
);
}
- Protect content with RequireAuth:
import { RequireAuth } from "react-role-auth-msh";
function AdminPanel() {
return (
<RequireAuth roles="admin" fallback={<p>Access denied</p>}>
<h1>Admin Panel</h1>
</RequireAuth>
);
}
API Reference
AuthProvider
The main provider component that manages role-based access control.
<AuthProvider user={userObject}>
<App />
</AuthProvider>
useAuth Hook
const {
user, // Current user object or null
hasRole, // Function to check user roles
} = useAuth();
RequireAuth Component
<RequireAuth
roles: Role | Role[] // Required roles
fallback?: ReactNode // Content to show if unauthorized
>
{children}
</RequireAuth>
Types
type Role = "admin" | "user" | "guest";
interface User {
id: string;
email: string;
roles: Role[];
}
License
MIT