0 Tage Serie
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
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const Permissions = {
READ: 1 << 0, // 0001
WRITE: 1 << 1, // 0010
DELETE: 1 << 2, // 0100
ADMIN: 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 Check
if (!(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.