[RUBY] Rails6 OmniAuth Twitter-Authentifizierung E-Mail-bedingter Zweig

Eine Notiz für sich selbst von einem ewigen Anfänger. Das Schienenlernen begann 3 Monate. Vorerst würde ich es begrüßen, wenn Sie darüber nachdenken könnten, wie es funktioniert. Wenn Sie der Meinung sind, dass eine solche Person in Ordnung ist, wäre ich Ihnen dankbar, wenn Sie mir einen freundlichen Kommentar geben könnten.

Zweck dieses Artikels

Da die Twitter-Authentifizierung keine E-Mail-Adresse erhält, wird eine zufällige E-Mail-Adresse generiert. Erhalten Sie für die Google- und Facebook-Authentifizierung eine legitime E-Mail-Adresse. Twitter ist eine zufällige Adresse. Andere sind bedingte Verzweigungen mit einer regulären Adresse.

Umgebung Ruby 2.7.1p83 Rails 6.0.3.3

Voraussetzungen

Die Anmeldefunktion von devise wurde implementiert.

OmniAuth hat bereits Login-Authentifizierungsfunktionen für Twitter, Google, Facebook usw. implementiert.

Ich habe auf den folgenden Artikel verwiesen ・ Verfahrensbezogen https://qiita.com/kazuooooo/items/47e7d426cbb33355590e ・ Einführung von OmniAuth https://qiita.com/LuckHackMahiro/items/9dfca6e67777a2161240

Bedingter Zweig: Twitter oder ein anderer als Twitter Vorausgesetzt, die Funktion kann implementiert werden

app/models/user.rb

def self.from_omniauth(auth)
  where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
    user.provider = auth.provider
    user.uid = auth.uid
    user.name = auth.info.name
    user.password = Devise.friendly_token[0, 20]
    user.email = auth.info.email    #google,Zum Zeitpunkt von Facebook
    user.email = User.dummy_email(auth) if user.provider == "twitter"   #Zum Zeitpunkt von Twitter
    avatar = open("#{auth.info.image}")
    user.image.attach(io: avatar, filename: "user_avatar.jpg ")
  end
end

Wenn ja, eine zufällige Adresse auf Twitter. Ich konnte eine legitime Adresse auf Google und Facebook erhalten.

Ich war froh, dass die bedingte Verzweigung gut verlief.

Recommended Posts

Rails6 OmniAuth Twitter-Authentifizierung E-Mail-bedingter Zweig
[Schienen] Validierung einstellen
Rails6 OmniAuth Twitter-Authentifizierung E-Mail-bedingter Zweig
Java-bedingter Zweig
[Java] Bedingter Zweig
Ruby bedingte Verzweigungsverarbeitung