1

ユーザー/認証にsfDoctrineGuardPluginを使用しているSymfony1.4プロジェクトを構築しています。ユーザーテーブルに「access_token」という名前のフィールドがあり、ユーザー登録時に自動生成された値を入力します。登録にはsfGuardRegisterForm、検証に使用されていることがわかります。残念ながら、./symfony doctrine:build-formsコマンドラインから実行すると、このフォームは拡張されていないように見えます。つまり、プラグインを編集せずにアクセストークンを生成することはできません。

sfRequestまたは、このフォームを介して検証を試みる前に、「access_token」値を手動で設定するようにパラメーターを変更することを考えていました。ただし、ユーザーがフロントエンドアプリケーションとAPIアプリケーションの両方で登録できるようにしているため、このパラメーター値を両方の場所に手動で入力する必要があり、非効率的です。ただし、おそらくそれは実際には正しい方法であり、フォームを変更しようとすることは理想的ではありません。

何か入力/提案はありますか?私がここにリストしたアイデアとは違うことを誰かがしますか?

編集:値を返す、sfGuardUserという名前のモデルにパブリック静的メソッドをすでに作成しました。generateAccessTokenプロジェクトのコードでこれを呼び出すのに最適な場所を見つけようとしています。

4

1 に答える 1

1

sfDoctrineGuardPluginは、ユーザー登録機能を提供しません。これが、自分で実装する必要がある理由です。したがって、コントローラーでは、symfonyで行われているのと同じようにフィールドにデータを入力できます。

class myActions extends sfActions {
    public function executeRegistration(sfWebRequest $request) {
        ...
        $form = new myRegisterForm();
        $form->setDefault('access_token', sfGuardUser::generateAccessToken());
        ...
    }
}

また、access_tokenウィジェットはのインスタンスである必要がありますsfWidgetFormInputHidden。お役に立てれば。

于 2011-01-24T13:21:58.337 に答える