web-dev-qa-db-ja.com

Webアプリケーションのベストプラクティス:一時セッションまたは期限切れセッション?

Node.jsとExpressを使用してアプリケーションで作業しているときに、UXテストで興味深い複雑な問題を見つけました。アプリケーションには「maxAge:24時間」と「ephemeral:true」のセッション設定がありましたが、どちらもtrueであるとは限らず、実際にログアウトしない限り、セッションは常に利用可能であるように見えました。

少しの調査で、少なくともエクスプレスセッションでは、これら2つの設定は連動しないことが確認されました。いくつかのより深い研究は、UXの世界では、一時的なセッションと期限切れのセッションが油と水のようであることを示しています。たとえば、ブラウザーが閉じたときにセッションを終了しようとするとセッションが終了し、逆もまた同様です。両方を行うのはわかりにくいUXになると言われています。

今、私は実際に最高のユーザーエクスペリエンスになるものを決定しようとしていますか?これはアプリケーションに依存する可能性があることを理解しています。私のアプリケーションはシンプルなデータベース管理インターフェースです。ユーザーはログインし、データベースのテーブルを管理できます。

セッションにmaxAgeを設定してアイドルアクティビティのために期限切れにする必要がありますか、それともブラウザが閉じたときにのみセッションを期限切れにしますか?一定期間後の短い有効期限、ALSOはブラウザが閉じられることもカバーしていると思います。一方、ユーザーは、ブラウザを開いたまま、ブラウザに戻ることを目的として、一定期間非アクティブになることがあります。混乱を最小限に抑える、最高のエンドユーザーUXを提供するシナリオはどれですか。

4
tremor

個人的には、UXについてではなく、アプリケーションのセキュリティに関する適切な考慮事項についての質問が多いので、質問を裏返すことを検討します。アプリ内に保持されているデータの機密性によって異なります。

システムの許容範囲内であれば、アプリケーションセッションを一定期間(この場合は24時間)持続しすぎると、ユーザーが再び開くたびに繰り返しログインする必要がないことが常に優先されます。ブラウザ。

ただし、この状況では、これはUXバイアスドメインであり、意見を集めているだけですが、アプリケーションのセキュリティは、考慮すべき重要な要素のほとんどです。

2
petehotchkiss

アプリケーションの悪いアクターとそのユースケースを検討してください。

ユーザーはホテルのWebキオスクにログインし、いくつかのことを行い、ログアウトを忘れ、ブラウザを閉じません。悪い俳優がやって来て、そのセッションを続けることができます。これが基本的にセッションとタイムアウトが存在する理由です。

実装が不十分な場合、セッションの有効期限は、どこにいてもまったく同じ方法で適用されます。1日おきと同じコンピューターと同じIPアドレスからシステムにアクセスしている場合でも同様です。

0
straya