1

jQueryまたはjavascriptを使用して、ログアウトボタンをクリックせずにユーザーがログオフしていないことを識別する方法。

ここでは、ブラウザの戻るボタンを押して前のページに戻るときに、ユーザーがログオフしていないときにログアウト ボタンを表示する必要があります。

ここに私のログアウトボタンがあります:

<a id="webviewbtn" href="#"><img src="img/logout.png" style="float:right;" /></a>

4

2 に答える 2

1

リソースを節約するために、サーバーへの非同期呼び出しを必要としないメソッドを好むでしょう。

ログインすると、システムはセッション ID を使用して Cookie を設定します。バックエンドを介して Cookie を設定することもできます。これは、顧客がログインしているかどうかを判断するために使用できます。

//using php here
setcookie('customer',1); //customer is logged in

setcookie('customer',0); //customer is not logged in

フロントエンドでは、jquery/javascript を使用してそのステータスを確認できます。ここでは、jquery Cookie プラグインが含まれていると想定しています https://github.com/carhartl/jquery-cookie

if ( $.cookie('customer') === 1 ){
    $('#webviewbtn').show(); //show logout button
}
else{
    $('#webviewbtn').hide(); //no logout button needed
}

そのシナリオでは、「顧客」Cookie がセッション Cookie と同じドメインと同じ期間を持つことが非常に重要です。そうしないと、リピーターのお客様の Cookie が 1 に設定されたままになっている可能性がありますが、セッション Cookie は既に古くなっています。また、顧客から呼び出されたすべてのアクションは、顧客 === 1 の状態がまだ有効であることを確認するために、バックエンドで確認する必要があります。そうしないと、誰もがその Cookie を 1 に設定できるため、大きなセキュリティ上の問題が発生します:)

于 2012-04-07T18:24:56.283 に答える
0

Web ページで任意の形式のアクションを実行する場合は、ユーザーを検証する Web サービスをメソッドで非同期または同期的に呼び出します。

サーバーが OK メッセージを返した場合、ユーザーは引き続きログインします。このアクションは、ログアウト ボタンをレンダリングするとき、またはユーザーがその他の「重要な」アクションを実行するときに実行できます。

有効期限のある Cookie に情報を保存することもできます。これは、ブラウザの戻るボタンを押すと、Cookie がクリアされ、ユーザーがログアウトされるか、または何を持っているかを管理できます。

この実装には多くの可能性がありますが、残念ながら、ここで提供する「ベスト プラクティス」のケースはありません。

于 2012-04-05T09:14:57.017 に答える