Cookie に基づくフィルターを使用して、顧客が訪問するたびに 1 回ログインできるようにします

巴扎黑
リリース: 2017-06-23 16:35:23
オリジナル
1444 人が閲覧しました

元の声明: この記事は私のオリジナルの作品であり、転載についてはブロガーに連絡してください

ログインすると、ログインボックスが表示されます。次回はログインする必要があります/毎月の無料ログインの同様のオプション このブログ記事は、その実装方法をここに記録するものです。記事に間違いがある場合は、メモとして記録します。ご指摘歓迎です

なぜ一度自己ログインするのかというと、特定のページにアクセスするときに初めて自動ログインに失敗し、次回訪問を更新するときに再度自動ログインプロセスを実行するためです。無限ループが発生します。

このブログ投稿のコード例フレームワークは Spring MVC であり、この機能を実装するために必要な知識を以下に説明します: Cookie とフィルター

1. Cookie とは: Web アプリケーションのユーザーを節約します。関連情報には、役立つアプローチが記載されています。たとえば、ユーザーがサイトにアクセスしたときに、Cookie を使用してユーザーの設定やその他の情報を保存し、次回ユーザーがサイトにアクセスしたときに、アプリケーションが以前に保存した情報を取得できるようにすることができます。

Cookieの保存方法とCookieの削除方法を見てみましょう

    Cookieの保存
  • String newUserName = null;
    try {
    	newUserName = URLEncoder.encode(username, "UTF-8");//把用户名转码,防止用户名是中文,cookies保存中文取出会乱码
    } catch (UnsupportedEncodingException e) {
    	e.printStackTrace();
    }
    Cookie nameCookie = new Cookie("username", newUserName);
    String pwdMd5Cook = MD5Util.MD5(Pwd);
    Cookie pwdCookie = new Cookie("pwd", pwdMd5Cook);// 保存加密后的密码
    nameCookie.setMaxAge(60 * 60 * 24 * 365);// 用户名保存一年
    pwdCookie.setMaxAge(60 * 60 * 24 * 30);// 密码保存30天
    // 发送Cookie信息到浏览器
    response.addCookie(nameCookie);
    response.addCookie(pwdCookie);
    ログイン後にコピー
Cookieの削除は非常に簡単ですが、

注意してください。 Cookieを保存するのと同じコントロールレイヤーにある必要があります、そうしないと保存されたCookieが見つからず削除できません2.フィルター - フィルターフィルターとも呼ばれます。サーブレット テクノロジーが先進的で実用的なテクノロジーであるため、Web 開発者はフィルター テクノロジーを使用して、Web サーバーによって管理されるすべての Web リソース (Jsp、サーブレット、静的画像ファイル、静的 HTML ファイルなど) をインターセプトし、いくつかの特別な機能を実現します。たとえば、URL レベルの権限アクセス制御、機密語彙のフィルタリング、応答情報の圧縮などの高度な機能を実装できます。

実装方法:
Filter

インターフェースを継承し、そのdoFilterメソッドを実装します。記述されたフィルター クラスを Web に登録します。渡されたロゴ (

IsAutomaticLogin

)、このロゴは自動ログイン中に保存されます (成功または失敗に関係なく)。何か間違っている場合は、皆さんご指摘ください

Cookie cookie = new Cookie("pwd", null);
cookie.setMaxAge(0);// 删除密码cookie
response.addCookie(cookie);
ログイン後にコピー
この時点で、この関数のサンプルの説明は完了です。何か間違っている場合は、コメント領域で指摘してください。

以上がCookie に基づくフィルターを使用して、顧客が訪問するたびに 1 回ログインできるようにしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート