2016-07-28 11 views
1

Ich habe derzeit eine React-Redux-Anwendung.Wie erstellt man Admin-Benutzer oder Super-Benutzer in React-Redux-Anwendung?

Ich möchte einen Admin-Benutzer in React-Redux erstellen.

Wenn ich einen Status mit userAdmin true oder false erstellen, können Benutzer auf den Status zugreifen und diesen Wert ändern? Das heißt, ist dies eine sichere Methode, um einen solchen Zugang zu schaffen?

Ich verwende Webpack, um ein Bundle.js zu erstellen, und habe einen node.js-Server für die Bereitstellung von Daten, die mit JWTs gesichert werden.

Gibt es darüber hinaus ein Standard- oder Semi-Standardmuster zum Erstellen eines Admin-Benutzers in einer react-redux-Anwendung?

Meine Gedanken dazu sind:

  1. eine separate App für die Admin-Benutzerverwaltung erstellen.

  2. Erstellen Sie einen Status für den Benutzer admin, und wenn dieser Status wahr ist, fragen Sie die serverAPI nach einer Administratoraktion ab. Aber zeigen die Admin-Fähigkeit nur, wenn dieser Zustand wahr ist z. Andere Benutzer löschen, Details zu Benutzern anzeigen, diese Daten jedoch nicht ohne einen autorisierten API-Aufruf bereitstellen. Wenn der Status dann heimlich geändert wird, kann der Benutzer nur die Aktionen sehen, ist jedoch nicht in der Lage, ohne die erforderliche Berechtigung auf die API zuzugreifen.

+0

Was Sie hier brauchen, ist einmal die clientseitige Validierung, dass der Benutzer admin ist. Um das Problem zu beheben, dass dieser Zustand zur Laufzeit (irgendwie) geändert werden kann, benötigen Sie zusätzlich eine serverseitige Validierung. –

Antwort

1

TLDR: Ihre Gedanken sind richtig

Sie in der Annahme Recht, dass der Benutzer den Zustand der Client-Seite app manipulieren konnte ihre Rechte ausweiten. Dies sollte jedoch keinen nützlichen Nutzen bringen, wenn Ihre Architektur richtig gemacht wird.

Daten, auf die nur Administratoren Zugriff haben sollten, sollten von vornherein nicht an einen normalen Benutzer übertragen werden. Änderungen, die nur Administratoren durchführen sollten, sollten nur mit JWTs akzeptiert werden, die Administratorbenutzer identifizieren.

Richtiges Management ist etwas, das Server-Seite passieren muss. Die Client-App spiegelt dies nur in der Benutzeroberfläche wider.