Privacy Considerations
Privacy Considerations
GDPR and Privacy Compliance
// Privacy-focused implementation
class PrivacyAwareReferrerPolicy {
constructor() {
this.userPreferences = new Map();
}
middleware() {
return (req, res, next) => {
const userId = req.session?.userId;
const preferences = this.userPreferences.get(userId) || {};
// Respect user privacy preferences
if (preferences.strictPrivacy) {
res.setHeader('Referrer-Policy', 'no-referrer');
} else if (preferences.limitedSharing) {
res.setHeader('Referrer-Policy', 'same-origin');
} else {
res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin');
}
next();
};
}
updateUserPreference(userId, preferences) {
this.userPreferences.set(userId, preferences);
}
}