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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

1034閲覧

自分ではなく、指定したユーザがログイン中かどうか確認する方法

pecchan

総合スコア574

Ruby on Rails 6

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/05/10 22:14

rails6.1.0

rails初心者です。的外れな質問してたらすみません。
具体的なコーディングより設計に関する質問になるかもしれません。

マッチングアプリのようなものを作成中です。
相手ユーザが、
・ログインしてない場合→メール送信してお知らせ
・ログインしてる場合→メール送信しない(ActionCableで通知するため)
という機能を作りたいと考えてます。

ログイン中かの判定は、自分自身であれば簡単ですが、
他人がログイン中かどうかは通常どのように判断するのでしょうか?
探しましたが情報見つかりませんでした。

コードの中で、
logged_in?(user)
のように引数に相手ユーザを渡して判定できればと思ったのですが・・・。

セキュリティ的にマズイでしょうか?
そもそもセッションから判定しようとするのが厳しいでしょうか?
やるとするなら、DBに書き込む等の処理になるでしょうか?
それとも便利なgemがあるでしょうか?

考え方だけでも結構ですので何かアドバイスいただけると幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

セキュリティ的にマズイでしょうか?

「何をマズいとするか」はアプリケーション次第です。
「マッチングアプリ」でしたら相手からの反応が気になるという点で、ONかOFFかは知っておきたいものでしょうし。
会員規約や会員登録時に「自身のON/OFFが相手に通知されます」という旨は明記しておくことで承諾を得るようにもできます。
もちろん文章を読ませるだけではなく項目にチェックさせるなど「確実な承諾」は得ておく必要はあります。

あとは作り次第です。

ログイン管理テーブルでも用意しておいて、ログイン/ログアウト時に更新するような仕組みとか、ブラウザ閉じて明確に「ログアウト」しないような場合は、一定時間何も操作なければセッションタイムアウトのタイミングで「ログアウト扱い」にするとか。

そういうGemがあるかどうかまでは知らないですが、自身である程度作りこむ必要はあると思います。

投稿2021/05/10 22:56

m.ts10806

総合スコア80857

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

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

pecchan

2021/05/11 05:41

たいへん参考になりました! 有難う御座います!!
m.ts10806

2021/05/11 06:16

念の為、どのように解決とされたのかフィードバックください。 セキュリティ的なところを気にされるのでしたらとことん仕様を煮詰めてから実装に入らないと後でマズイことになるかもしれません
pecchan

2021/05/11 09:29

ログイン時だけというより、サーバにリクエスト度に、user_idと現在時刻をテーブルに保存するようにしました。 厳格なログアウト判定やセキュリティは必要ないのでこれで充分です。
m.ts10806

2021/05/11 10:49

どこかで削除するようにしないと不要データがたまっていくだけなのでご注意を。
pecchan

2021/05/12 00:58

有難う御座います。 追加追加ではなく、更新でuser1人につき1行しか置かないので大丈夫です。
m.ts10806

2021/05/12 08:02

いえ、ユーザが増えていったときのこと「常にオンラインという状況が与える利用者への影響」を加味したアドバイスです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問