インターネット技術の継続的な発展に伴い、ユーザーがその機能を使用するためにログインを必要とする Web サイトがますます増えています。しかし、ユーザーにとって、アクセスするたびにアカウントとパスワードを入力するのは明らかに不便であるため、「remember me」機能が登場しました。この記事では、Cookie テクノロジーを使用して ThinkPHP6 に記憶機能を実装する方法を紹介します。
1. Cookie の概要
Cookie はサーバーからクライアントに送信される小さなファイルで、ユーザーが Web サイトにアクセスしたときにユーザーのコンピュータに保存されます。これらのファイルには、ログイン名、ショッピング カート内の商品など、ユーザーに関連する情報が含まれています。ユーザーが再度 Web サイトにアクセスすると、ブラウザはこれらのファイルを自動的にサーバーに送り返します。これにより、ユーザーはログイン資格情報を入力せずに Web サイトに再度アクセスできるようになります。
2. 実装原理
remember me 機能の実装原理は非常に簡単です。ユーザーがログインに成功し、「Remember Me」オプションをチェックすると、サーバーはユーザーの一意の識別子を生成し、それを Cookie に保存します。ユーザーが Web サイトにアクセスするたびに、サーバーは Cookie からこの識別子を読み取り、この識別子に基づいてユーザーを認証します。
3. 実装手順
- ログイン ページ フォームに「Remember Me」オプションを追加します:
<div class="form-group"> <label for="remember"> <input type="checkbox" id="remember" name="remember" /> 记住我 </label> </div>
- コントローラーにログインを書き込みます。コードを作成し、Cookie を追加します:
public function login(Request $request) { $username = $request->post('username'); $password = $request->post('password'); $remember = $request->post('remember'); // 进行用户名和密码的验证 if ($remember) { // 创建一个Cookie,有效期为7天 cookie('remember', $username . '|' . md5($password . config('app.key')), 60 * 60 * 24 * 7); } // 其他登录逻辑 }
- ミドルウェアの Cookie を確認します:
public function handle(Request $request, Closure $next) { $remember = cookie('remember'); if ($remember && !session('user')) { list($username, $token) = explode('|', $remember); // 基于$token校验用户名和密码,如果有效则自动登录 $user = User::where('username', $username)->where('password', md5($token . config('app.key')))->find(); if ($user) { session('user', $user); } } return $next($request); }
このミドルウェアでは、まず「Remember I」Cookie があるかどうかを確認します。存在する場合は、ユーザー名とパスワードのハッシュを取得し、このハッシュと構成ファイル内のキーに対して認証します。認証に成功すると、セッションにユーザー情報が自動的に書き込まれ、自動ログインが完了します。
4. 注意事項
Cookieを使用して「Remember Me」機能を実装する場合は、以下の点に注意してください。パスワードやセッション ID などのユーザーの個人情報;
- Cookie 識別子の生成に単純すぎるアルゴリズムを使用しないでください;
- Cookie の保存を避けるために、Cookie の有効期限を設定することをお勧めします。長期間にわたって保存されるため、セキュリティ リスクが生じる可能性があります。
- ミドルウェアで Cookie を検証する場合は、暗号化アルゴリズムを使用して検証のセキュリティを強化することをお勧めします。
- 5. 概要
以上がCookie テクノロジーを使用して ThinkPHP6 に Remember Me 機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
