[RUBY] Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails

Cette fois, j'ai résumé ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails, donc pour référence. Articles auxquels j'ai fait référence lors de la mise en œuvre de l'authentification Google ↓ [Rails] Implémentez l'enregistrement des utilisateurs sur Facebook / Twitter / Google à une vitesse explosive en utilisant Devise & Omniauth

Erreur 400: invalid_request Paramètre obligatoire manquant: client_id

Premier. Il s'agit d'une erreur qui s'est produite lorsque j'ai essayé de m'authentifier en sélectionnant un compte sur la page d'authentification Google. On m'a dit qu'il n'y avait pas de client_id. Il y a deux causes ① Il y avait un espace ② La clé a été saisie telle quelle sans utiliser .env

① Espace

devise.rb


config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'] ,ENV['GOOGLE_CLIENT_SECRET'], skip_jwt: true

De

devise.rb


config.omniauth :google_oauth2,ENV['GOOGLE_CLIENT_ID'],ENV['GOOGLE_CLIENT_SECRET'],skip_jwt: true

Changé en. Il semble que je n'avais pas besoin d'espace. Il y avait de l'espace sur le site de référence.

② La clé a été saisie telle quelle sans utiliser .env D'après ce que je peux voir sur d'autres sites, il semble que certaines personnes pourraient y aller tel quel, mais cela n'a pas fonctionné dans mon environnement. Si vous ne pouvez pas le résoudre, essayez d'ajouter gem'dotenv-rails '.

L'authentification par e-mail n'est pas effectuée

La prochaine chose qui est sortie était cette erreur Si vous le faites normalement, il s'affichera si le courrier n'est pas authentifié. c'est

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!← avec ça
    @user.save!← Ça!
    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! A été résolu en le mettant dans le contrôleur.

Petite publicité

J'ai créé une application appelée Public Diary. C'est une application qui vous permet de publier votre agenda (il est possible de ne pas le publier), mais je suis le seul à l'utiliser (en pleurs). Veuillez le vérifier car il est mis à jour presque tous les jours. S'il vous plaît.

URL: https://public-diary.herokuapp.com/

Résumé

En fait, j'ai essayé d'implémenter l'authentification sns environ 4 fois et j'ai échoué à plusieurs reprises. J'ai pu le faire pour la première fois cette fois, mais j'étais très heureux quand j'ai pu le faire. Merci d'avoir regardé jusqu'à présent.

Recommended Posts

Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails
Ce à quoi j'étais accro lors de l'introduction de la bibliothèque JNI
Ce que j'ai corrigé lors de la mise à jour vers Spring Boot 1.5.12 ・ Ce à quoi j'étais accro
Ce à quoi j'étais accro en utilisant rspec sur des rails
J'étais accro à la configuration de default_url_options avec l'introduction de la conception de Rails
Ce à quoi j'étais accro avec l'API REST Redmine
Mémorandum: Ce à quoi j'étais accro quand j'ai frappé l'API de comptabilité freee
[Rails] J'étais accro aux paramètres nginx lors de l'utilisation d'Action Cable.
Problèmes auxquels j'étais accro lors de la création de l'environnement digdag avec docker
Notez que j'étais accro au traitement par lots avec Spring Boot
L'histoire à laquelle j'étais accro lors de la création de STS
J'étais accro au démarrage de sbt
J'étais accro à WSl en essayant de créer un environnement de développement d'applications Android avec Vue.js
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
[Rails] Je souhaite ajouter des données aux paramètres lors de la transition avec link_to
J'étais accro à la réécriture sur @ SpringApplicationConfiguration-> @SpringBootTest
J'étais accro à la méthode du rouleau
J'étais accro au test Spring-Batch
[Rails] Comment résoudre ActiveSupport :: MessageVerifier :: InvalidSignature auquel j'étais accro lors de l'introduction de la connexion Twitter [ActiveStorage]
Une histoire à laquelle j'étais accro lors du test de l'API à l'aide de MockMVC
J'étais accro à l'idée de toucher MySQL 8.0 avec un sentiment de 5.7. Problème de configuration My.cnf
[Circle CI] J'étais accro au test automatique de Circle CI (rails + mysql) [Memo]
J'étais accro aux tests unitaires avec l'opérateur de tampon dans RxJava
J'étais accro à l'utilisation de RXTX avec Sierra
J'ai essayé de faire une authentification de base avec Java
Je veux jouer avec Firestore de Rails
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
[Rails] Je veux charger du CSS avec webpacker
SpringSecurity J'étais accro à essayer de me connecter avec un mot de passe haché (résolu)
J'ai essayé ce que je voulais essayer avec Stream doucement.
Après avoir installé le gemfile'devise''bootstrap 'avec des rails, que faire lorsque l'url est une erreur
J'étais accro au record du modèle associé
Lors de l'importation de CSV avec Rails, il était vraiment facile d'utiliser la commande nkf
Accro au Webpacker fourni en standard avec Rails 6
Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
Lorsque j'ai essayé de faire défiler automatiquement avec JScrollBar, le gestionnaire d'événements n'a été dessiné qu'une seule fois.
Lorsque j'ai essayé d'exécuter Azure Kinect DK avec Docker, il a été bloqué par le CLUF
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
Une histoire dans laquelle j'étais accro à la conversion de type implicite d'ActiveRecord lors du test unitaire
Comment générer automatiquement un diagramme ER lors de la migration avec Rails 6
Comment définir des variables d'environnement lors de l'utilisation de Payjp avec Rails
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Je veux pousser une application créée avec Rails 6 vers GitHub
Je suis entré depuis Rails et je ne savais pas ce qu'était [attr_accessor]
J'étais accro à la mise à jour de la déclaration dans MyBatis
Que vérifier lorsque rails db: la migration ne réussit pas
Comment spécifier la base de données lors de la création d'une application avec des rails
J'étais accro au réglage de laradock + VSCode + xdebug
[Rails] J'ai essayé d'implémenter le traitement par lots avec la tâche Rake
Qu'advient-il des variables d'instance lors de la copie d'une instance avec ruby
J'étais étrangement accro à l'utilisation de l'API Stream de Java avec Scala