B. Authentication & Authorization
Tutorial Authentication & Authorization
1. Backend Authentication
1.1 Setup Auth Middleware (src/middleware/auth.js)
const jwt = require('jsonwebtoken');
const auth = (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.user = decoded;
next();
} catch (error) {
res.status(401).json({ message: 'Auth failed' });
}
};
// Role middleware akan diimplementasikan nanti
/*
const checkRole = (roles) => {
return (req, res, next) => {...}
};
*/
module.exports = { auth };1.2 User Model (src/models/User.js)
1.3 Auth Controller (src/controllers/authController.js)
1.4 Auth Routes (src/routes/auth.routes.js)
2. Frontend Authentication
2.1 Auth Slice (src/store/slices/authSlice.js)
2.2 Auth Service (src/services/auth.service.js)
2.3 Protected Route Component (src/components/common/ProtectedRoute.js)
2.4 Login Page (src/pages/Login.js)
2.5 Update App.js dengan Protected Routes
Catatan Penting:
Implementasikan validasi form sebelum mengirim request ke server
Tambahkan error handling yang proper di semua endpoints
Implementasikan logout functionality
Tambahkan loading states untuk feedback user
Implementasikan refresh token jika diperlukan
Pastikan semua routes terlindungi dengan proper authorization
Implementasikan remember me functionality jika diperlukan
Untuk testing:
Register user baru
Login dengan credentials
Akses protected route
Test role-based access
Test token expiration
Test unauthorized access
Last updated
Was this helpful?