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.
Speichern Sie das Profilbild des Benutzers im aktiven Speicher. Selbst als ich gegoogelt habe, habe ich nicht viele Artikel über aktiven Speicher gesehen, da es sich nur um Trägerwellen handelte. Deshalb habe ich ihn in der Hoffnung gepostet, dass sich Menschen in derselben Situation befinden würden.
Die Anmeldefunktion von devise wurde implementiert. p>
OmniAuth hat bereits Login-Authentifizierungsfunktionen für Twitter, Google, Facebook usw. implementiert.
Ich habe auf den folgenden Artikel verwiesen p> ・ Verfahrensbezogen https://qiita.com/kazuooooo/items/47e7d426cbb33355590e ・ Einführung von OmniAuth https://qiita.com/LuckHackMahiro/items/9dfca6e67777a2161240
Es war sehr hilfreich! Vielen Dank.
app/models/user.rb
require "open-uri" #Hier
class User < ApplicationRecord
#Kürzung
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
user.email = User.dummy_email(auth) if user.provider == "twitter"
avatar = open("#{auth.info.image}") #Hier
user.image.attach(io: avatar, filename: "user_avatar.jpg ") #Hier
end
end
#Kürzung
end
Ich konnte das Bild erhalten, indem ich mich auf den Artikel bezog. Ich habe nicht viele Artikel über aktiven Speicher gesehen, daher war es sehr hilfreich.
Es wurde gemunkelt, dass das Bild klein und rau sein würde, also habe ich versucht, es so aussehen zu lassen, als wäre es größer. Es gab einige, die es auf der Modellseite spezifizierten, wenn sie verschiedene Dinge betrachteten.
config/initializers/devise.rb
config.omniauth :facebook, ENV['FACEBOOK_ID'], ENV['FACEBOOK_SECRET_KEY'], :image_size => 'large'#Dies
config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']
config.omniauth :twitter, ENV['TWITTER_API_KEY'], ENV['TWITTER_API_SECRET_KEY'], callback_url: "http://localhost:3000/users/auth/twitter/callback", :image_size => 'original'#Dies
Die Implementierung im Zusammenhang mit der Anmeldeauthentifizierung funktioniert je nach Tageszeit möglicherweise nicht ordnungsgemäß, oder sie funktioniert möglicherweise nicht ordnungsgemäß, wenn Cookies im Browser verbleiben. Daher scheint es sinnvoll, dies geduldig zu tun.
Recommended Posts