Ich weiß, dass das schon oft gestellt wurde, aber die Antworten sind für mich nie völlig akzeptabel.
Also folge ich Railscast von Ryan Bates zu diesem Thema und Mischen Sie das mit dem offiziellen Devise Omniauth Guide (das auf FB basiert), aber ich bin einfach nicht es funktioniert wie ich es erwarte, also würde ich etwas Hilfe lieben.
Ich habe ein Users::OmniauthCallbacksController
, das so aussieht:
Dann habe ich auch zwei Methoden auf meinem User.rb
Ich stoße auf eine Vielzahl von Problemen. Am unmittelbarsten ist, weil ich das Passwort einstelle, der Benutzer das Passwort nicht kennt, wenn er sich anmeldet (und ich es nicht automatisch bei der Bestätigung anmelde).
Aber wenn ich das Passwort nicht einstelle, werden sie nicht aufgefordert, das Passwort zu setzen ... also ist das auch irgendwie komisch.
Dies sind meine Einstellungen für mein User
-Modell:
Meine Frage ist also: Wenn sich jemand über Twitter anmeldet, muss er ein Passwort eingeben? Ich sende sie automatisch trotzdem an die registration/new.html.erb
, da Twitter keinen E-Mail-Wert zurückgibt. Aber ich versuche, den Prozess erst in Gang zu bringen, bevor ich ihn optimiere.
Wie gehe ich mit dem Passwortproblem um?
Bearbeiten 1
Um mehr Klarheit zu schaffen, muss ich mich mit diesem password_required
Problem beschäftigen, unabhängig vom OAuth Provider.
Wie überschreibe ich diese Anforderung für alle OAuth-Anbieter?
Sie sollten die folgende Methode hinzufügen Die Klasse User
:
Da Twitter die E-Mail-Adresse des Nutzers nicht zurückgibt, möchten Sie vielleicht auch Optimierung der E-Mail-Überprüfung , aber die Weiterleitung des Benutzers an registration/new.html.erb
, wie Sie es bereits tun, scheint mir der richtige Ansatz zu sein.
Tags und Links ruby-on-rails twitter devise ruby-on-rails-5 omniauth