web-dev-qa-db-ja.com

ログインしたユーザーを探してはならないページへのリクエストを処理するにはどうすればよいですか?

ユーザーが私のWebアプリケーションに正常にログインしたとします。この時点で、「サインアップ」ページと「ログイン」ページをナビゲーションに表示する必要はありませんが、URLを入力するだけでそれらのページにアクセスしようとした場合はどうなりますか?

現在、私はjustログインしているすべてのユーザーをリダイレクトして、それらのページにアクセスしようとしています。ホームページ(または、ログインに成功すると通常表示されるランディングページ)に予告なしに

ログインしたユーザーがUXの観点からアクセスする理由がないページへのリクエストを処理する良い方法は何でしょうか?

6
Kid Diamond

ユーザーがログインサインアップのページに手動でURLを入力してアクセスしようとしている場合、何らかの理由で実際にアクセスする必要があるはずです。まず、アプリのどこかにすぐに利用できるログアウトボタンがあることを確認して、ログアウトした場合にそのページに進むことができるようにします。ただし、ログインしてサインアップページに戻ろうとする場合、現在ログインしているユーザーをホームページにリダイレクトする際に正しく実行していると思います。ログインとサインアップのページには、設計された機能以外に何も提供されていないので、先に考えて、ユーザーが実際にどこに行きたいかを示しています。 本当にそれらのページにアクセスしたい場合は、ログアウトして再度ログインすることを許可します。アイデアに過ぎない場合は、それがお役に立てば幸いです。

8
Nick_M

ログインしたユーザー向けに、これらのページの代替デザインを作成できます。

ログインページに「すでにログインしています!」と表示され、次に実行することのできる便利なオプションが提供されます(たとえば、ホームページに移動してログアウトします)。

サインアップページには、詳細を編集できるページへのリンクが表示される場合があります。

他の場所で述べたように、これは(おそらく)Edgeのケースであるため、現在の経験はおそらくあなたを傷つけていません。可能であれば、すでにログインしているときに、サインアップページまたはログインページにアクセスするユーザーの数を調べると興味深いでしょう。

1
Paul D. Waite

ユーザーが「ログイン」または「サインアップ」URLを入力している場合は、そこに移動します( 最小驚きの原則 )。ただし、各ページの[ログアウト]ボタンはいいかもしれません。

URL補完またはブックマークのためにユーザーがこれらのページにアクセスしている場合は、それを最小限に抑えるようにURLを設計します。

  • ユーザーがまだログインしていない場合は、アプリケーションのエントリポイントをホームページ(例:/)にし、そのページを/login(/ signupへのリンク付き)にリダイレクトします。
  • ユーザーがログインまたはサインアップしたら、ユーザーがリダイレクトしてホームページ(例:/)に戻され、Homepage [1]に転送
  • /loginまたは/signupページは、アプリケーションの外部から直接アドバタイズまたはリンクすることはできません。したがって、ユーザーがこれらのURLを入力、コピー、貼り付け、記憶、またはブックマークする必要はありません。

[1] Webアプリケーションがログイン後にホームページへの内部転送を実行し、ホームページは表示されるが、URLに/loginが表示される場合があります。ユーザーはホームページをブックマークしていると思っていますが、実際にはログインページをブックマークしています。

1
user3634796

ログアウトリンクは、「ログアウトして別のユーザーとしてサインイン」のように記述する必要があります。これは、ユーザーがログインページにアクセスしている場合に行うことです。

0
Boilz