Meine App verwendet die rollenbasierte Zugriffssteuerung und prüft die Berechtigungen, die sie bitweise Operationen verwendet. Der Pseudo-Code ist so etwas wie:OAuth 2 Bereiche mit Dezimalzahl zur Verwendung der bitweisen Maske
function HasPermission(userPermission, permissionBitMask) {
return (userPermission& permissionBitMask) != 0;
}
Jetzt habe ich beschlossen, zu OAuth 2 zu wechseln wird JWT verwenden. Gemäß der Spezifikation der OAuth 2:
Scope wird als eine Reihe von Groß- und Kleinschreibung durch Leerzeichen getrennte ausgedrückt Saiten.
Aber ich möchte Umfang als Nummer angeben, so statt:
{
scope: ["item:create", "item:view", "product:view"]
// or an object based structure
}
möchte ich nutzen, um:
{
scope : 7
}
Ist dieser Entwurf akzeptabel, was würde ich vermissen, wenn ich Verwenden Sie stattdessen Zeichenfolgen mit Groß-/Kleinschreibung. Ich nehme an, dass die bitweise Operatormethode leistungsfähiger sein sollte als der Stringvergleich und die Suche, die im letzteren Fall benötigt würden.
Ich habe keine Probleme mit Integer als Zeichenfolge, wenn es konform macht. Übrigens verwende ich Auth0 für eines meiner Projekte, aber es kann nicht verwendet werden, wenn Sie die Installation Ihrer Web-App vor Ort anbieten –