問題タブ [hwioauthbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 「check-facebook」という名前のリソース所有者はいません
標準(ログインと登録)とOAuth(ログインと登録)の両方を持つために、FOSUserBundleでHWIOAuthBundleを実装しようとしています。
私はこれを最終決定する方法がわかりません。
ここに私の設定ファイルがあります:
config.yml
security.yml
ルーティング.yml
そして最後に私のUser.php
次の手順で認証を試みているとき: * url -> /c/connect Facebook 接続リンクを持っている * それをクリックして、Facebook ログインを受け入れる * 最後に Web サイトに戻ると、次のエラーが発生しています: リソースがありません「check-facebook」という名前の所有者
facebook - HWIOAuthBundle : 「check-google」という名前のリソース所有者がいません
HWIOAuthBundle をインストールしました。
しかし、Google アカウントでログインしようとすると、次のエラーが表示されます。
「check-google」という名前のリソース所有者はいません。
そして、他のAPI(Facebook、twitter ...)でも同じ種類のエラーが発生しました
これは私の security.yml です:
私の routing.yml :
と私の config.yml :
私の問題はNo resource owner with name 'google' (HWIOAuthBundle & FOSUserBundle integration) と同じです。どうすればこれを修正できますか?
php - HwiOauthBundle での Symfony 2 Oauth2 の問題
プロジェクトの 1 つで認証に HWIOAuthBundle (Google 構成を使用) を使用しています。
ほとんどの場合、非常にうまく機能します。しかし、ある時点でアプリケーションをサーフィンしていると、google_id に関するエラーが発生します。特定のページには表示されませんが、すべて突然表示されます (非アクティブな期間の後)。基本的に、ユーザー プロバイダーが取得する google_id が突然 null になります。エラーを再現できず、デバッグが非常に難しいためです。
間違った構成設定を使用している可能性のある HWIOAuth バンドルから、または Symfony 2 セッションから来ているようです。しかし、セッションのライフタイムを変更しようとしましたが、何も機能しませんでした (私が言ったように、オンデマンドでエラーを再現することはできません。それは突然現れます...)。
この問題を解決する方法はありますか?
よろしく
unit-testing - テスト コントローラーで DB 書き込みを無効にする - doctrine.orm.default_entity_manager を挿入すると、FOSUser と HWIOAuth をアクティブ化するときに「致命的なエラー」がスローされる
phpunitでコントローラーの機能テストを行う際に、DB書き込みを無効にしたいです。
Symfony2 のプロジェクトでは、phpunit を使用して、データベースに保存する API エンドポイントへの POST 呼び出しをテストします。これは機能し、FOSUser
+をアクティブにするときに回帰の問題が発生しましたHWIOAuth
。
phpunit がダミー データをデータベースに書き込むのを避けるために、ここでは次のトリックを使用します。Doctrine を使用して Symfony2 でコントローラーをテストし、エンティティ マネージャーをモックしてから、モックされたサービスをテスト システムのコンテナーに挿入します。
$entityManagerMock->expects($this->once())->method('flush');
このようにしてテストを実行すると、DB エンドポイントがモックされ、その質問と以下のコードで確認できるように、flush() が呼び出されることのみがテストされます。
これは以前は機能していました。
このテストでは緑色のバーが表示され、POST 呼び出しがテストされ、データベースにデータが保存されませんでした。
その時点では、デフォルトのバンドルと自分のバンドルしかありませんでした。AppKernel.php
問題
これらのバンドルをアクティブ化すると、AppKernel.php
構成後、上記でテストした POST を実行する ajax 呼び出しを含め、すべてがブラウザーで手動でテストして正しく動作します。そのコントローラーは、カーネルでこれらのバンドルをアクティブ化する前に機能していたため、FOSUser および HWIOAuth とは何の関係もありません。
しかし、手動テストが機能したにもかかわらず、自動テストCall to a member function getRepository() on a non-object
は私のコードの行ではなく、FOS と Doctrine の内部で失敗し始めました-ここに完全な出力があります:
問題の絞り込み
問題はdoctrine.orm.default_entity_manager
、テスト段階でモックを挿入するサービスです。これが、ブラウザーでの手動テストが失敗しない理由です。モックはありません。
モックを使用せずに実際の DB に書き込むようにテストを編集すると、次のように動作します。
->set()
モックなしでテストするには、コンテナー内の をコメントアウトするだけです。Method was expected to be called 1 times, actually called 0 times.
そして、私もコメントアウトを避けるために->expects()
:
次に、テストの緑色のバー:
結論
doctrine.orm.default_entity_manager
FOSUser と HWIOAuthを事前にアクティブ化する際にモックを挿入すると、正常に動作します- トリックでこれらのバンドルを有効にすると
AppKernel
、機能しません。 - 次に、実際のデータをデータベースに書き込むことを許可することしかテストできませんが、これはテスト時には望ましくありません。
質問
FOSUserBundle と HWIOAuthBundle がカーネルでアクティブ化されている場合、phpunit のテストからコントローラーを呼び出すときに、DataBase への書き込みを無効にするにはどうすればよいですか?
ありがとう!シャビ。
symfony - symfony2 hwioauthbundle の正しい構成
hwioauth バンドルを使用して、salesforce を介して認証しようとしましたが、whi 構成を実行できません。次のメッセージが表示されます。
ドキュメントを理解していなかったか、ルーティング構成に関する詳細が不足していると思います...
/demo/secured_area の非常に基本的な構成は次のとおりです。
ルーティング.yml:
config.yml:
security.yml:
そのため、どの構成を使用する必要があるのか 疑問に思っていました。
symfony - HWIOAuthBundle と FosUserbundle 構成の問題の統合
この記事に従って、Github で OAuth2 を実装しました。認証が成功した後、以下のエラーが発生します。
パス「/secure_area/login/check-github」のコントローラーが見つかりません。ルーティング構成に一致するルートを追加するのを忘れたのではないでしょうか?
config.yml
security.yml
facebook - Symfony2 FOSUserbundle2 HWIOAuth バンドル facebook ログイン エラー
Facebook ログインを自分の Web サイトに実装しようとしています。FOSUserBundle も使用しています。FOSUB でのログインは正常に機能しますが、url /login/check-facebook に到達した直後に facebook でログインしようとすると、「認証例外が発生しました」というエラーが表示されます。このチュートリアルを使用して Facebook ログインの実装を行いました。また、Facebook から App ID と App Secret を取得しました (これら 2 つをclient_id
とclient_secret
inとして設定config.yml
する必要があるかどうかはわかりません。また、Facebook で他に何も設定する必要がないかどうかもわかりません)。
FOSUBUserProvider.php
ユーザー.php
ルーティング.yml:
config.yml
services.yml
mongodb - HWIOAuthBundle のユーザー プロバイダーを作成するにはどうすればよいですか
ソーシャルネットワーク経由でログイン機能を書きたいです。
ユーザーがログインしていない場合は、データベースに永続化されます。ユーザーが存在する場合は、ユーザーをログインさせます。プロバイダーには何を書き込む必要がありますか? ドキュメントの状態:
バンドルには、oauth エンドポイントのユーザー応答に基づいてユーザーをロードできるサービスが必要です。カスタム サービスがある場合は、HWI\Bundle\OAuthBundle\Security\Core\User\OAuthAwareUserProviderInterface というインターフェイスを実装する必要があります。
だからこれは私が書いたもので、行き詰まった
使用すべき方法を教えてください。
FOSuserBundle を使用していないプロバイダーの例を教えてもらえますか?
ありがとう