2011-07-14 14 views
2

CakePHP 1.3の新機能を書いて、x日数とy日後に期限切れになるまでパスワードを期限切れにして、自動的にパスワードをランダムな文字列に変更し、ユーザーに新しいパスワードやログインリンクをメールします。サーバー上のcrontabは正しい方法ですか?またはsecurichはどうですか?x日ごとに強制的にパスワードを期限切れにします。

+0

ユーザーをロックアウトする前に、ユーザー自身がパスワードをリセットできるようにする必要があります。最後の手段としてパスワードをランダム化しない限り悪い方法です。 – Kzqai

+0

私は15日後、10日後に警告し、5日間後にメールでリセットする予定です。このアプリは、エクスクライズが発生してアカウントがロックアウトされるまでにプロファイルが完了しないと、以前のすべての作業が失われるように設計されています。 – db0

+0

それは十分です。 – Kzqai

答えて

2

クロムジョブとセクリッチは2つです非常に異なるものです。最初のプロセスは、定義された間隔で、または指定された時間にプロセスを開始します。 2番目の方法は、mysql-serverのユーザ権限を管理するツールのようです。明らかに2番目のものはあなたには関係ないサーバーの特権ではなく、パスワード(など)のデータベースのため、あなたを大いに助けません。

クリーンアップにはcronジョブを使用できます。これは、ユーザーテーブルを通過する1日の間隔でスクリプトを開始し、何を行う必要があるかを意味します。最後のパスワード変更がx日前に行われた場合は電子メールを送信し、最後のパスワード変更がx + y日前だった場合は、パスワードを変更して新しいパスワードを電子メールで送信します。したがって、新しい列last_password_change_dateまたは何かが必要で、スクリプトが知る必要があるものは、xyです。

1

私は間違いなくこのスクリプトをcronjobで毎日実行されるPHPスクリプトとして設定します。

パスワードがデータベース内で最後にリセットされてからの日付を記録しておきます。これは開発が簡単であるはずです。

1

一般に、Webアプリケーションは、データベースへの接続を認証するためにユーザーが指定した認証トークンを使用しません(securichはすべて、データベース内の認証トークン/特権の管理に関するものです)。そしてあなたのコードが(認証トークンを操作する)ことは、呼び出される方法とはまったく異なるものです。

だから操作を呼び出すの問題を見て....

スケジューリングプログラムのための利用可能なツールがたくさんあります。 cronであり、Unix/Linux/POSIXシステム上では通常標準で提供されています。したがって、それらは仕事のための分かりやすいツールです。しかし、CLI PHPインタープリタを起動してコードを実行してください。少なくとも、ウェブページ(少なくともdirectlyではありません)としてジョブを呼び出さないでください。ウェブページは長時間実行されるプロセスを呼び出すためのものではありません。

しかし、ユーザーがしばらくログインしていないときにパスワードを変更するだけではどうですか?

(私は、ユーザーにパスワードを変更させる練習、特にパスワードを変更して電子メールで新しいパスワードまたは代替トークンを送信するという練習を主張します)。

関連する問題