[RUBY] Rails6 OmniAuth Twitter Authentification Branche conditionnelle des e-mails

Une note pour vous-même par un éternel débutant. L'apprentissage des rails a commencé 3 mois. Pour le moment, j'apprécierais que vous réfléchissiez à son fonctionnement. Si vous pensez qu'une telle personne est bien, je vous serais reconnaissant de bien vouloir me faire un commentaire aimable.

Objectif de cet article

Étant donné que l'authentification Twitter n'obtient pas d'adresse électronique, elle génère une adresse électronique aléatoire. Pour l'authentification google et facebook, obtenez une adresse e-mail légitime. twitter est une adresse aléatoire. D'autres sont des branchements conditionnels avec une adresse régulière.

Environnement Ruby 2.7.1p83 Rails 6.0.3.3

Prérequis

La fonction de connexion par appareil a été implémentée.

OmniAuth a déjà implémenté des fonctions d'authentification de connexion pour Twitter, google, facebook, etc.

J'ai fait référence à l'article suivant ・ Lié à la procédure https://qiita.com/kazuooooo/items/47e7d426cbb33355590e ・ Introduction d'OmniAuth https://qiita.com/LuckHackMahiro/items/9dfca6e67777a2161240

Branche conditionnelle: Twitter ou autre que Twitter En supposant que la fonction peut être implémentée

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,Au moment de facebook
    user.email = User.dummy_email(auth) if user.provider == "twitter"   #Au moment de Twitter
    avatar = open("#{auth.info.image}")
    user.image.attach(io: avatar, filename: "user_avatar.jpg ")
  end
end

Si c'est le cas, une adresse aléatoire sur Twitter. J'ai pu obtenir une adresse légitime sur Google et Facebook.

J'étais heureux que le branchement conditionnel se soit bien passé.

Recommended Posts

Rails6 OmniAuth Twitter Authentification Branche conditionnelle des e-mails
[rails] Définir la validation
Rails6 OmniAuth Twitter Authentification Branche conditionnelle des e-mails
Branche conditionnelle Java
[Java] Branche conditionnelle
Traitement des branches conditionnelles Ruby