2016-04-27 6 views
1

Ich logge mich gerade mit E-Mail und Passwort ein. Aber ich möchte in der Lage sein, jedem Benutzer eine Rolle zuzuweisen: Admin oder Benutzer. Ich habe gelesen, dass dies getan wird, indem Sie die benutzerdefinierte Authentifizierungsmethode verwenden, aber ich finde die Dokumente nicht klar zu implementieren mit E-Mail/Passwort-Authentifizierung.Wie richte ich Rollen in der Firebase-Authentifizierung ein?

Wie würde ich das einrichten?

Ich bin derzeit mit Feuerbasis für ember emberfire

Update:

Docs Referenz: https://www.firebase.com/docs/web/guide/login/custom.html

+0

Link hinzufügen Sie verweisen wir auf docs? Unsicher, ob es Ember oder Ember-Fire oder Firebase ist .. Danke! – TameBadger

+0

@TameBadger hat es hinzugefügt – FutoRicky

+0

Wie Sie es implementieren, liegt an Ihnen. Ein benutzerdefinierter Sicherheitsanbieter ist eine Möglichkeit, aber hier ein Beispiel, das einen beliebigen Anbieter verwendet: https://gist.github.com/sararob/331760829a9dcb4be3e7. Siehe auch diese 2,5 Jahre alte Antwort, die immer noch sehr relevant ist: http://stackoverflow.com/questions/19520615/how-do-i-implement-role-based-access-control-in-firebase –

Antwort

0

Firebase gerade gestartet Unterstützung für rollenbasierten Zugriff auf alle Benutzer über benutzerdefinierte Ansprüche auf dem ID-Token: https://firebase.google.com/docs/auth/admin/custom-claims

Sie würden die Admin-Zugriffsregel definieren:

{ 
    "rules": { 
    "adminContent": { 
     ".read": "auth.token.admin === true", 
     ".write": "auth.token.admin === true", 
    } 
    } 
} 

die Benutzerrolle mit dem SDK Admin Set:

// Set admin privilege on the user corresponding to uid. 
admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => { 
    // The new custom claims will propagate to the user's ID token the 
    // next time a new one is issued. 
}); 

auf die ID des entsprechenden Benutzertoken Ansprüche Dies wird propagieren.

Um es aus dem Token auf dem Client zu analysieren, überprüfen: https://firebase.google.com/docs/auth/admin/custom-claims#access_custom_claims_on_the_client

Verwandte Themen