PHP ログイン システムの安全な「Remember Me」機能のための永続 Cookie
概要
PHP ログイン システムに「記憶する」機能を実装するには、ユーザーのブラウザ内の安全な Cookie。この Cookie により、ユーザーはブラウザを閉じたりデバイスを再起動した後でもログインしたままにすることができます。
データベース構造
リメンバーミー情報を安全に保存するには、次の場所に別のテーブルを作成します。データベース:
CREATE TABLE `auth_tokens` ( `id` integer(11) not null UNSIGNED AUTO_INCREMENT, `selector` char(12), `token` char(64), `userid` integer(11) not null UNSIGNED, `expires` datetime, PRIMARY KEY (`id`) );
セレクター フィールドとトークン フィールドは、Remember me を保存するために使用されます。
ログイン後
ユーザーがログインして「記憶する」オプションを選択すると、ランダム セレクター (12 文字) と認証子 (33 文字) が生成されます。 bytes) を使用して、random_bytes() 関数または同様の方法を使用してランダム性を確保します。
次のコマンドを使用して、Remember me Cookie を設定します。コード:
setcookie( 'remember', $selector . ':' . base64_encode($authenticator), time() + 864000, // expires in 10 days '/', 'yourdomain.com', true, // TLS-only true // http-only );
セレクター、ハッシュされた認証子、ユーザー ID、および有効期限を auth_tokens テーブルに挿入します。
ページ読み込み時の再認証
その後のページの読み込み時に、ユーザーがまだログインしておらず、記憶する Cookie が無効になっている場合、 set:
詳細
以上が永続 Cookie を使用して PHP ログイン システムに「Remember Me」機能を安全に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。