RewardApp / js /middleware /auth_middleware.js
Mhdeusi's picture
Update js/middleware/auth_middleware.js
ff0bda6 verified
class AuthMiddleware {
static checkAuth(requiredRole = null) {
return (callback) => {
// بررسی احراز هویت
if (!authManager.isAuthenticated()) {
authzManager.showLoginRequired();
return false;
}
// بررسی نقش اگر مشخص شده باشد
if (requiredRole && !authzManager.hasRole(requiredRole)) {
authzManager.showAccessDenied();
return false;
}
return callback();
};
}
static optionalAuth(callback) {
return () => {
// اگر کاربر احراز هویت شده باشد، اطلاعاتش را پاس می‌دهد
const user = authManager.getCurrentUser();
return callback(user);
};
}
static initializeApp() {
console.log('🔐 Auth Middleware Initialized');
// فقط بررسی ساده - حذف فراخوانی‌های مشکل‌دار
if (typeof authManager !== 'undefined' && authManager.getToken) {
const token = authManager.getToken();
if (token) {
const user = authManager.getCurrentUser();
if (!user) {
authManager.logout();
console.log('Token exists but no user - logged out');
}
}
}
}
}
// میان‌افزارهای سریع
const requireAuth = (callback) => AuthMiddleware.checkAuth()(callback);
const requireStudent = (callback) => AuthMiddleware.checkAuth('student')(callback);
const requireInstructor = (callback) => AuthMiddleware.checkAuth('instructor')(callback);
const requireAdmin = (callback) => AuthMiddleware.checkAuth('admin')(callback);