verwendest du cookie-parser?
Weiterleitungen anstelle von Cookies verwenden
Hallo zusammen, danke für all die Ratschläge. Ich bin beim Cookie-Ansatz stecken geblieben, da mein Server auf einer anderen Domain läuft und Safari gegen Drittanbieter-Cookies kämpft. Ich habe eine Stack Overflow Frage & Antwort mit einem Weiterleitungsansatz verfasst, viel Spaß beim Authentifizieren! ![]()
Ich möchte nur sagen, dass ich ebenfalls sehr daran interessiert wäre, eine einfache Integration der Firebase-Authentifizierung in Discourse zu haben.
Hmm, was ist der Zweck davon genau? Verwenden Sie Firebase-Authentifizierung nicht auch anderswo in einer Web-App außer Discourse? Ich tue es und möchte diese Einstellung nicht ändern, ich würde sie lieber auf „local“ belassen (Authentication State Persistence | Firebase).
Nur ein paar Hinweise für andere, die diesen Weg einschlagen:\n\n* Nennen Sie Ihren Cookie “__session”, wenn Sie Firebase Hosting verwenden. Die Rewrite-Regeln filtern alle anderen Cookies aus Caching-Gründen heraus.\n* Sie möchten den relevanten Code oben durch etwas wie dieses ersetzen, damit Sie keine nicht validierten E-Mails zulassen (großes Sicherheitsrisiko).\njavascript\n auth\n .verifyIdToken(idToken)\n .then(function (decodedClaims) {\n // In diesem Fall erzwingen wir, dass sich der Benutzer in den letzten 5 Minuten angemeldet hat.\n // und sie haben eine verifizierte E-Mail\n if (\n decodedClaims.email_verified \u0026\u0026\n new Date().getTime() / 1000 - decodedClaims.auth_time \u003c 5 * 60\n ) {\n return auth.createSessionCookie(idToken, { expiresIn });\n }\n throw new Error(\"UNAUTHORIZED REQUEST!\");\n })\n\n* Es gibt eine Einstellung für “Logout-Weiterleitung” in Discourse. Wahrscheinlich möchten Sie diese verwenden, um eine URL aufzurufen, die den “__session”-Cookie löscht (kann nur über einen Backend-API-Aufruf erfolgen), damit der Benutzer nicht automatisch als derselbe Benutzer wie zuvor angemeldet wird, wenn er versucht, sich erneut anzumelden.
Wo können Sie diesen Code implementieren?