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.
É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.
La fonction de connexion par appareil a été implémentée. p>
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 p> ・ Lié à la procédure https://qiita.com/kazuooooo/items/47e7d426cbb33355590e ・ Introduction d'OmniAuth https://qiita.com/LuckHackMahiro/items/9dfca6e67777a2161240
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