Dieses Mal habe ich zusammengefasst, worauf ich bei der Implementierung der Google-Authentifizierung mit Rails süchtig war. Artikel, auf die ich bei der Implementierung der Google-Authentifizierung verwiesen habe ↓ [Rails] Implementieren Sie die Benutzerregistrierung auf Facebook / Twitter / Google mit Devise & Omniauth mit explosiver Geschwindigkeit
Erster. Dies ist ein Fehler, der aufgetreten ist, als ich versucht habe, mich durch Auswahl eines Kontos auf der Google-Authentifizierungsseite zu authentifizieren. Mir wurde gesagt, dass es keine client_id gibt. Es gibt zwei Ursachen ① Es gab ein Leerzeichen ② Der Schlüssel wurde ohne Verwendung von .env eingegeben
① Raum
devise.rb
config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'] ,ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true
Von
devise.rb
config.omniauth :google_oauth2,ENV['GOOGLE_CLIENT_ID'],ENV['GOOGLE_CLIENT_SECRET'],skip_jwt: true
Gewechselt zu. Es sieht so aus, als hätte ich keinen Platz gebraucht. Auf der Referenzstelle war Platz.
② Der Schlüssel wurde ohne Verwendung von .env eingegeben Soweit ich von anderen Websites aus sehen kann, scheinen einige Leute so zu gehen, wie es ist, aber es hat in meiner Umgebung nicht funktioniert. Wenn Sie es nicht lösen können, fügen Sie gem'dotenv-Rails hinzu.
Das nächste, was herauskam, war dieser Fehler Wenn Sie dies normal tun, wird es angezeigt, wenn die E-Mail nicht authentifiziert ist. das ist
qiita.rb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
# callback for google
def google_oauth2
callback_for(:google)
end
# common callback method
def callback_for(provider)
@user = User.from_omniauth(request.env["omniauth.auth"])
@user.skip_confirmation!← damit
@user.save!← Das!
if @user.persisted?
sign_in_and_redirect @user, event: :authentication #this will throw if @user is not activated
set_flash_message(:notice, :success, kind: "#{provider}".capitalize) if is_navigational_format?
else
session["devise.#{provider}_data"] = request.env["omniauth.auth"].except("extra")
redirect_to new_user_registration_url
end
end
def failure
redirect_to root_path
end
end
@user.skip_confirmation! @user.save! Wurde durch Einlegen in den Controller gelöst.
Ich habe eine App namens Public Diary erstellt. Es ist eine App, mit der Sie Ihr Tagebuch veröffentlichen können (es ist möglich, es nicht zu veröffentlichen). Ich bin der einzige, der es verwendet (Weinen). Bitte überprüfen Sie es, da es fast täglich aktualisiert wird. Bitte.
URL: https://public-diary.herokuapp.com/
Eigentlich habe ich ungefähr viermal versucht, die sns-Authentifizierung zu implementieren, und bin wiederholt fehlgeschlagen. Diesmal konnte ich es zum ersten Mal machen, aber ich war sehr glücklich, als es fertig war. Vielen Dank für das bisherige Anschauen.
Recommended Posts