SiteController があり、という名前のアクションを作成しましたactionForgotpassword
。
アイデアは、パスワードの回復トークンを作成して、ユーザーがパスワードの回復を選択した後に電子メールの受信トレイのリンクをクリックすると、アプリケーションがその信頼性を検証し、パスワードの変更を許可/許可しないようにすることです。リンクは次のようなものです。
http://localhost/project/index.php?r=site/forgotpassword?token=3dd0e0(..)16712dac3
*localhost for testing locally, not in production
そして、サイト コントローラーに次のアクセス ルールがあります。
public function accessRules()
{
return array(
array('allow',
'actions'=>array('recover', 'forgotpassword', 'login'),
'users'=>array('?'),
),
array('allow',
'actions'=>array('index', 'logout'),
'users'=>array('@'),
),
array('deny',
'users'=>array('*'),
)
);
}
私の問題は次のとおりです。
ページにアクセスするとlocalhost/project/index.php?r=site/forgotpassword
すべて問題ありませんが、メール リンクをクリックすると URL は次のようになります。
localhost/project/index.php?r=site/forgotpassword?token=3dd0e0(..)16712dac3
プロジェクトのインデックス (この場合はサイト/ログイン アクション) にリダイレクトされます。
URL にパラメーターを使用してこの動作を採用しているのはなぜですか? accessRules で他に何か指定する必要がありますか?