javascript / expert
Snippet
Feingranulare Autorisierung mittels bitweiser Operatoren
Bitweise Operatoren ermöglichen eine extrem speichereffiziente Speicherung und schnelle Prüfung mehrerer boolescher Flags (Berechtigungen) innerhalb einer einzigen Ganzzahl. Dies ist ein Experten-Muster für Hochleistungs-Autorisierungssysteme.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const Permissions = {READ: 1 << 0, // 0001WRITE: 1 << 1, // 0010DELETE: 1 << 2, // 0100ADMIN: 1 << 3 // 1000};const userPerms = Permissions.READ | Permissions.WRITE;const canWrite = (userPerms & Permissions.WRITE) !== 0;const canDelete = (userPerms & Permissions.DELETE) !== 0;// Next.js Metadata / Access Checkif (!(userPerms & Permissions.ADMIN)) {// Restricted access}
nextjs
Erklärung
1
1 << 0, 1 << 1...
Verwendet den Left-Shift-Operator, um eindeutige Zweierpotenz-Werte für jedes Berechtigungs-Flag zu erstellen.
2
userPerms = Permissions.READ | Permissions.WRITE;
Kombiniert mehrere Berechtigungen zu einer einzigen Bitmaske mittels des bitweisen OR-Operators.
3
(userPerms & Permissions.WRITE) !== 0
Prüft auf eine spezifische Berechtigung mittels des bitweisen AND-Operators, um das relevante Bit zu isolieren.