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

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

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

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

1279閲覧

Railsのdeviseにて、confirmableを使用する際のベストプラクティスは何でしょうか?

sorajiro

総合スコア9

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/02/12 17:38

編集2020/02/12 17:42

前提・実現したいこと

deviseの機能を学習するために、サンプルアプリケーションを作成しています。

そこで、下記の条件を満たせないかと取り組んでいます。

①最初のユーザー登録時には、メールアドレスのみでOK
②上記でメールアドレスの登録を行った際に、そのメールアドレスへ確認メールを送信
③確認メールからリンクをクリックすると、パスワード設定画面へ遷移し、パスワード設定を行う

現在は、deviseのconfirmableという機能を用いて実装を試みています。
また、こちらの記事を参考に作成しています。
devise でメールアドレスのみでユーザー登録を行い、パスワードを後から設定する方法
rails 5.2.4.1
ruby 2.5.1

疑問

私の様な学習中の人間がconfirmableを使用してメール認証(gmail)を行う場合、アプリのセキュリティがgoogleの基準を満たしていないため、googleの設定より以下の2パターンのどちらか行う必要性があることを学びました。

①安全性の低いアプリのアクセスを許可する
②2段階認証を設定し、生成されたパスワードをdevise.rbへ記述する

しかし、ここで疑問に感じました。

①の場合は、そもそも危険なのではないか。1アプリの為にgoogleのセキュリティを落としている様に感じます。
②の場合は、1つのメールアドレスだけを使うのであれば問題ないが、複数ユーザーによる複数メールアドレスを使用する場合、2段間認証用のパスワードが固有に存在すると考えられ、devise.rbへ固有の値を記述できないのではないか。

実際に、①の方法でメール認証が出来ることは確認していますが、これが適切なのか分からない状態にいます。

教えて頂きたいこと

今回の様な個人作成のアプリケーションの場合、gmailでのメール認証を行うには一体どの様な方法をとるのが良いのでしょうか?googleのセキュリティを下げず、且つ複数ユーザーも利用できる様にするためのベストプラクティスは存在するのか教えていただければと思います。

また、「他にもこんな方法がある」、「こっちの方法の方が良い」という代替案等ございましたら、そちらも教えていただけると幸いです。

知見のある方、仮説のある方、よろしくお願い致します。

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

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

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

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

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

asm

2020/02/14 22:52

> 複数ユーザーによる複数メールアドレスを使用する場合 あなたがあなたのRailsアプリに教えるパスワードは、「送信用のメールアドレス」のパスワードただ1つだと思いますが 複数のユーザーが各々のメールアドレス"から"送信を行うのでしょうか?
sorajiro

2020/02/16 03:15

ご返答ありがとうございます!! よくよく確認してみたところ、asmさんのおっしゃる通り、送信用のメールアドレスのパスワードを設定すれば問題なく解決しました、、。勘違いをしておりました!ありがとうございます!
guest

回答1

0

自己解決

asmさんに追記いただいた
あなたがあなたのRailsアプリに教えるパスワードは、「送信用のメールアドレス」のパスワードただ1つ
によって解決致しましたm(_ _)m

投稿2020/02/17 16:06

sorajiro

総合スコア9

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問