前提・実現したいこと
こんにちは、rails でwebサイトの開発を行っています。
gem Deviseでユーザー機能を構築しています。
会員登録が必要なサイトでよくみる、googleログインを実装しようと思い、色々な方の記事を参考に実装しました。
signupやsigninについては問題なく動いている状態です。
参考にさせていただいた記事
google-oauthを導入する前(deviseだけの時)
・ユーザーネーム
・ユーザーアバター
・メールアドレス
・パスワード変更
↑をマイページから編集ができるようにしていました。
そして、確認用に現在のパスワードを入力して、情報変更の確定という
Deviseの初期状態にちょっとカスタマイズした程度の状態です。
Google-oauthを導入してsignupやsigninができるようになり、色々動作確認をして気がついてのですが、
情報変更しようとする時、マイページで変更をし、最後に確認で現在のパスワードを入力をすることがgoogle認証で作成したユーザーはできない。
導入時に参考にした記事や似た記事をみると、
ModelUser
1 def self.from_omniauth(auth) 2 where(provider: auth.provider, uid: auth.uid).first_or_create do |user| 3 user.email = auth.info.email 4 user.password = Devise.friendly_token[0,20] 5 end 6 end
user.password = Devise.friendly_token[0,20]
ここの部分でランダムな生成をしているようです。
googleなどの認証はsignin singupの手軽さで使うユーザーが多いと思うので、
メールアドレスだけ引っぱって来て、パスワードをsingup時に手動入力のようなことはナンセンスなのかなと考えているのですが、、、
そうなると、マイページ変更時のパスワードがユーザー自身で決めてないために確認できないことになります。
マイページの情報変更を現在のパスワードの入力なしで変更を保存させる方がいいのでしょうか?
このあたりの何かベストプラクティスはありませんか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。