Nachdem ich eine Profilseite für meine App erstellt habe, möchte ich eine Liste der sozialen Dienste anzeigen, auf denen sich der Nutzer befindet. Es fiel mir auf, dass der einfachste Weg wäre, das eingebaute Kontensystem von Meteor dafür zu benutzen.
Gibt es eine gute Möglichkeit, einem vorhandenen Konto externe Dienste hinzuzufügen?
Kann sich der Benutzer dann auch mit (z. B.) Facebook und seinem Passwort von meiner App aus anmelden?
Eine weitere Frage, die natürlich folgt: Gibt es eine gute Möglichkeit, ein anwendungsspezifisches Passwort zu einem Konto hinzuzufügen, das mit einem externen Dienst erstellt wurde?
Hier ist eine alternative Methode. In dieser Lösung überschreibe ich eine Kernfunktion und füge ein benutzerdefiniertes Verhalten hinzu. Mein Ziel ist es, die Servicedaten mit dem aktuell angemeldeten Benutzer zu verknüpfen und dann der Kernfunktion zu erlauben, ihr Ding wie normal zu machen.
%Vor%Pros:
Nachteile:
So füge ich Anmeldeinformationen zu einem bestehenden Benutzerkonto hinzu: ... / Meteor-how-to-Login-mit-GitHub-Account.html
Ja, ein Benutzerkonto kann mehreren Diensten zugeordnet sein und gleichzeitig eine kennwortbasierte Anmeldung haben. In den Meteor-Dokumenten sehen Sie die Struktur eines solchen Benutzerkontos:
%Vor% Um einen Benutzernamen / ein Passwort für ein bestehendes Konto hinzuzufügen, können Sie Accounts.sendResetPasswordEmail
auf der Serverseite verwenden. Dies stellt auch sicher, dass die Änderung authentifiziert und autorisiert erfolgt.
Natürlich können Sie den Benutzerdatensatz auf der Serverseite auch selbst mit einem neuen Passwort aktualisieren, aber dies könnte zu einer Sicherheitslücke in Ihrer App führen. Ich würde auch davon abraten, wenn möglich ein eigenes Krypto-Protokoll zu implementieren, da es schwierig ist .
Wenn Sie andere Dienste als E-Mail hinzufügen möchten, könnten Sie zum Beispiel
Accounts.loginWith[OtherService]
verwenden. Dadurch wird der Benutzer mithilfe eines neuen Kontos beim anderen Dienst aus- und wieder angemeldet. Schauen Sie sich das Beispiel an und antworten Sie in diesem Beitrag. Es gibt Ihnen ziemlich genau den Code, um mehrere externe und interne Konten zu integrieren. Mit kleineren Optimierungen können Sie die Passwortfelder für jedes Konto nach Belieben hinzufügen.
Wie Meteor zu verwenden. loginWithGoogle mit mrt: accounts-ui-bootstrap-dropdown
Code:
%Vor%Tags und Links meteor