1

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 で他に何か指定する必要がありますか?

4

1 に答える 1