質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Q&A

0回答

258閲覧

DeviseのFacebookログインを利用した際のパスワードが機能しない

innjera

総合スコア132

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

0グッド

1クリップ

投稿2019/01/10 06:07

Devise/Facebookログインでのパスワードがivalidとなる

DeviseのFacebookログインを利用しています。
Userの登録変更(deviseのregistrations/edit)をするのに、
Deviseのデフォルトの設定通りですと、既存パスワードを入力する必要がるかと思いますが
Facebookに登録しているパスワードを入力すると以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

1 error prohibited this user from being saved: Current password is invalid

該当のソースコード

ruby

1###User.rb 2 3# == Schema Information 4# 5# Table name: users 6# 7# id :bigint(8) not null, primary key 8# uid :string 9# provider :string 10# name :string 11# first_name :string 12# last_name :string 13# image :string 14# nationality :string 15# tel :string 16# email :string default(""), not null 17# encrypted_password :string default(""), not null 18# reset_password_token :string 19# reset_password_sent_at :datetime 20# remember_created_at :datetime 21# sign_in_count :integer default(0), not null 22# current_sign_in_at :datetime 23# last_sign_in_at :datetime 24# current_sign_in_ip :inet 25# last_sign_in_ip :inet 26# failed_attempts :integer default(0), not null 27# unlock_token :string 28# locked_at :datetime 29# created_at :datetime not null 30# updated_at :datetime not null 31# 32 33class User < ApplicationRecord 34 35 #### :confirmable, 36 devise :database_authenticatable, :registerable, 37 :recoverable, :rememberable, :validatable, 38 :lockable, :timeoutable, :trackable, :omniauthable 39 40 has_many :bid_prices, dependent: :destroy 41 has_many :bidded_engines, through: :bid_prices, source: :engine 42 43 before_validation do 44 if !name && first_name && last_name 45 self.name = "#{first_name} #{last_name}" 46 end 47 end 48 49 def self.find_for_oauth(auth) 50 user = User.where(uid: auth.uid, provider: auth.provider).first 51 52 unless user 53 user = User.create( 54 uid: auth.uid, 55 provider: auth.provider, 56 email: auth.info.email, 57 # name: auth.info.name, 58 first_name: auth.extra.raw_info.first_name, 59 last_name: auth.extra.raw_info.last_name, 60 password: Devise.friendly_token[0, 20], 61 image: auth.info.image 62 ) 63 end 64 65 user 66 67 end 68end 69 70 71

試したこと

  • Facebookのパスワードに間違いはありません(何度も試した為)
  • Facebookログインを使わずにログインしたUserの場合、問題なく設定済パスワードを入力するとUser情報を変更できる為、変更機能(deviseのregistrations/edit)は問題なく機能しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問