0

これが私が達成しようとしていることです:

サイトのホームページを表示できるようにしたい。ただし、このホームページでできることは、メールアドレスを入力できることだけです。次に、ホームページを経由して実際のコンテンツに移動するための固有のリンクを含むメールが送信されます。実際のアカウントやログインは必要なく、一意にメールで送信されたリンクを所有するだけです。(また、.edu アドレスにのみ送信されます)。

これを実装する最良の方法は何ですか?

4

1 に答える 1

2
  1. ユーザー名をキーコードにマッピングする SQL テーブルを作成します。
  2. ホームページ フォームが送信されると、AZ、az、0 ~ 9 文字のランダムな 16 文字の文字列が生成されます。
  3. ユーザー名を 16 文字の文字列にマッピングする SQL 行をテーブルに挿入します (PDO を使用)。
  4. example.org/login/email@email.com/rAndomStRiNgHeRe のようなリンクをユーザーに電子メールで送信します。
  5. example.org/login/([^/])+/([A-Za-z0-9])+ を example.org/verify-login.php?email=$1&code=$2 にマップするために、ModRewrite で .htaccess をセットアップします。
  6. verify-login.php を作成します。これは、PDO を使用して、指定された電子メールから指定されたコードへのマッピングを使用して、テーブル内のエントリをデータベースに照会します。
  7. 一致する場合は、ユーザーを実際のコンテンツに誘導します。
  8. コンテンツを保護する必要がある場合は、電子メールとキーを含む Cookie を保存し、データベース ルックアップを実行して、データベース内で Cookie 電子メールと Cookie キーが相互にマップされていることを確認します。このチェックは、保護するページごとに行う必要があります。

補足として、email:key を base64_encode し、それを URL で使用するのがおそらく最善でしょう。それに応じて .htaccess を更新します。次に、verify-login.php で、base64 文字列をデコードし、電子メールとキーに分割して、チェックを実行します。

于 2012-11-17T00:40:04.410 に答える