2


FosUserBundle と HWIOAuthBundle + Symfony2.4 を使用してログイン ページと登録ページを作成し ています

        users can login using Google, Facebook or Login Through a Form 

登録ページで ->

        users can Register using Google, Facebook or Register Through a Form 

この投稿http://m2mdas.github.io/blog/2013/11/21/integrate-hwioauthbundle-with-fosuserbundle/に従ってください

著者は HWIOAuthBundles Login.html.twg
をオーバーライドすることを提案しています app/Resources/HWIOAuthBundle/views/Connect でオーバーライドし
、FosUserBundle Form twig コード ( http://pastebin.com/8FS3Smta )を挿入しますが、それ
を試みたときに
エラーが発生します: 変数 "last_username" が HWIOAuthBundle:Connect:login.html.twig の 15 行目に存在しません

これは、HWIOauthBundle が FOSUserbundle を使用していない/含めていないことを意味します

私が理解したことから、拡張できる BaseBundle の
質問は 1 つだけです
。1) これは可能ですか?
2)そうでない場合、必要な動作を証明できる正しいバンドルは何ですか

どんな助けでも大歓迎です

--- 編集 ---
2 つのログイン方法を組み合わせることができました (m2mdas による以下の回答を参照) が、2 つの登録方法を組み合わせることができません


以下のURLを入力するとうまくいく回避策
....app_dev.php/secure_area/connect/googleなので、試したURLへのカスタムルートを作成する必要があります

my_registration:
    path: /secure_area/registration
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /secure_area/connect/google
        permanent: true

しかし、それは
....app_dev.php/secure_area/connect
ではなく
....app_dev.php/secure_area/connect/google に移動します

意図したとおり
TIA

4

1 に答える 1

4

まあ、私はそれをうまく説明していないようです:)私は実際にその部分をコピー/変更する必要があることを意味していました

{% for owner in hwi_oauth_resource_owners() %}
<a href="{{ hwi_oauth_login_url(owner) }}">{{ owner | trans({}, 'HWIOAuthBundle') }}</a> <br />
{% endfor %}

HWIOAuthBundle:Connect:login.html.twigをオーバーライドして、表示される FOSUserBundle:Security:login.html.twigファイルに配置しhttp://yoursite.com/loginます。したがって、現在のログイン URL はhttp://yoursite.com/connectではなくhttp://yoursite.com/loginになります。

ただし、追加の手順があります。oauth ファイアウォールのオプションを、通常は FOSUserbundle のログイン URL にapp/config/security.yml変更する必要があります。login_path/login

#app/config/security.yml
#....
oauth:
    #..
    login_path: /login
    #..

MinimalSecurityBundlesSetup リポジトリにもブランチをプッシュしました。参考までに確認できます。

更新: 登録フォームに関する回答

そこがregistration_form設定オプションの出番です。デフォルトではfos_user.registration.form、組み込みFOSUserBundleフォームに設定されています。オプションが true に設定されている場合confirmation、OAuth 認証が成功すると、登録フォームがレンダリングされるルートにHWIOAuthBundleリダイレクトされます。http://your.site.com/connect/registration/{userid}FOSUserBundle

fos_user.registration.form( doc に記載されているように) に基づくカスタム登録フォームがある場合registration_formは、フォームのサービス名の名前に値を設定する必要があります。次に、登録ページのレイアウトに合わせてHWIOAuthBundle:registration.html.twigをカスタマイズする必要があります。通常の登録ページと OAuth 登録ページを同じルートに組み合わせる必要はないように思えます。

于 2014-01-17T19:33:15.773 に答える