モノレビュー

期限付きのURLを作成する

$tmpuser = $this->Tmpuser->find('first', array('conditions' => array('cryptemail' => $this->params['pass']['0'], 'date_add(created,interval 24 hour) > now()')));

会員登録する際によくあるような24時間のみアクセス可能なURLを作成してみます。何がベストなのかわからないので試行錯誤してみました。

本登録用のユーザーテーブルとは別に仮登録用のユーザーテーブルを用意。仮登録用テーブルに登録日フィールドをつくっておいて、後で検証するというやり方。

MySQLならば

date_add(created, interval 24 hour) > now()

で24時間以内かどうかを判定できる。

ただこれだと、MySQL用の命令をハードコーディングすることになるのでDBエンジンが変わったときとかに面倒くさそう。

ではTTLフィールドを作成し、登録日時+24時間のUnixタイムスタンプで持たせてみる。これだと単純比較のみで期限切れ判定ができる。

登録時に

strtotime(‘+1 day’)

これをTTLフィールドに設定すると後々削除するときとかにも使えるので便利だ。

モバイルバージョンを終了