4

機能するログイン スクリプトがありますが、ユーザーが既にログインしている場合に追加のログイン試行をどのように処理する必要があるのか​​ 疑問に思っています。ユーザーが既にログインしていることが判明した場合、ログイン ページはホームページにリダイレクトされます。

ただし、ユーザーがログイン ページで複数のブラウザー タブを開いている場合は、1 つのブラウザー タブでログインし、同じログインまたは別のログインで他のブラウザー タブを使用して再度ログインを試みます。この 2 種類の要求をどのように処理すればよいですか?

複雑なことに、ユーザーがトークンを使用して確認された後にユーザーをログインさせる確認ページがあります。ユーザーがすでにログインしている場合、これをどのように処理すればよいですか?

たとえば、ユーザー A とユーザー B の両方が登録されており、両方とも電子メールでトークンを受け取ります。どちらも同じ PC、同じブラウザ、同じセッション上にあります。ユーザー A はトークンを検証し、正常にログインします。ユーザー B は、トークンを確認してからログインします...? ユーザー A がすでにログインしているのを待ちます。ユーザーAはどうすればいいですか?

ここでのベストプラクティスは何ですか?

4

3 に答える 3

3

ユーザーがログイン ページで複数のブラウザー タブを開いている場合、1 つのブラウザー タブでログインし、他のブラウザー タブを使用して再度ログインを試みます。この要求をどのように処理すればよいですか?

確かに、ログインセッションが設定され、再度有効なログインであれば認証する必要はありませんか?

通常、追加のログインを処理するには 3 つの方法があります。

  1. 無視して、人々が異なる場所で同時にログインできるようにします

  2. 2 番目のセッションがログインしたときに最初のセッションをキックアウトします。多くの場合、これは最善の解決策ではありませんが、ブラウザを閉じて (つまり、適切にログアウトしていない)、新しいセッションで再度ログインしようとすると、彼らはできないと言った。

  3. ユーザーが他の場所でログインしているというエラーが表示された場合。これを行う場合は、アクティブなログインに時間制限があることを確認してください。そうすれば、誰かがどこかでログアウトするのを忘れたり、ブラウザが予期せず閉じたりした場合でも、ログインし直すことができます。時間。

個人的には、よほどの事情が無ければ第2案でいいと思います。

于 2012-08-01T09:10:22.763 に答える
1

個人的に誰かがダブルログインを行うと、可能な限り最初にログインした人がログアウトされます。

なんで?

基本的には、誰かがログアウトを忘れてコンピュータを離れた場合です。別のコンピューターに戻ってログインしようとすると、ログインできなくなり、彼は本当に本当に腹を立てます。

ユーザーがログインすると、そのコンピューターにログインしている、または別のコンピューターの同じアカウントでログインしている他のすべてのユーザーがログアウトされます。ユーザーが常に自分のアカウントにログインできるようにするため。

これを無視することもできます。アプリケーションで問題が発生しない場合は、一度に複数の場所で1つのアカウントで誰かにログインさせることができます。しかし、私たちはあなたのためにそれを決定することはできません。

同じブラウザにログインしようとしている2人の異なるユーザーに関しては、これを決して起こさせません。これにはCookieを使用しているため、アプリケーションでも不可能です。

于 2012-08-01T09:05:52.677 に答える
1

クッキーの使用:

ログインページで:

<script type="text/javascript">
if(document.cookie.split(";")[0].split("=")[0] != "")//the login page checks for cookies every time it loads.if the password and id are saved,it'll redirects to homepage without showing login page
        {
        window.location.href = "welcome.html";
        }

if(condition)//condition when username and password are valid
            {
                var uname=document.getElementById("zname").value;
                var pswd=document.getElementById("zpswd").value;
                if(document.getElementById("chkbx").checked) //Remember me checkbox (stores username and password until "logout" is clicked in homepage)
                {
                    document.cookie=uname+"="+pswd;
                    alert("You will be automtically logged in when you visit this page again" +uname);
                }



                window.location.href="welcome.html";
            }
</script>

ホームページ:

<script type="text/javascript">
function del_cookie(name)
            {
        document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }
    function signOut()
            {
        del_cookie(document.cookie.split(";")[0].split("=")[0]);
        window.location.href ="login_page.html"
    }
</script>

そのため、ログイン ページは読み込まれるたびに Cookie をチェックします。パスワードとIDが保存されている場合、ログインページを表示せずにホームページにリダイレクトします

于 2012-08-01T09:08:17.973 に答える