2017-04-04 18 views
0

私はLaravelからGuzzle経由で外部APIを使用して接続できます。そのapiはoAuth2を介して認証コードで認証する必要があります。リダイレクトのシナリオをユーザー名とパスワードだけでどのように統合テストできるのだろうか?単体テストoAuth2認証コード

他の言葉:統合テストでリダイレクトされたuriから認可コードを取得するためにリダイレクトするブラウザアクションをシミュレートするにはどうすればよいですか?

フロー

私は(GET) 私は右のログイン後、ユーザー名とパスワード
  • に記入しなければならない
  • が、私は指定にリダイレクトされます
  • 外部APIのログインページに要求
    • クエリパラメータとしてデ認証コードとURIをリダイレクト

    自動テスト

    • 私はAPIと接続できます。私はGET、POST、PUTリクエストを行うことができます
    • リダイレクトシナリオはブラウザ経由で動作しますが、統合テストのシナリオでは、ユーザー名とパスワードはフィールドなど

    最初のGETリクエストの応答に問題

    CSRF、ビューステートは、(ログインフォームを取得するために)複数の隠しフィールド(CSRF、ビューステート)があります。そのフィールドは私のPOSTリクエストではシミュレートできません。私はユーザー名とパスワードのフィールドしか持っていません。この場合、私はリダイレクトされたことはありませんが、ログインページを再度返します。私は重要な隠されたフィールドを欠場するからです。

    +0

    達成したいことは何ですか?関連するロジックを単体テストしたり、偽の/虚偽のoauthサーバとの統合テストを作成したりできますか? – k0pernikus

    +0

    リダイレクトuriから認証コードを取得します。偽装された認証サーバまたは虚偽の認証サーバの有用性は何ですか? – schellingerht

    +0

    あなたのユースケースによって異なります。あなたは本当にあなたのテスト内から外部APIを呼び出すことを望んでいます。その成功は外部APIに結合されますか?あなたの質問を読んで、私はあなたが達成しようとしていることをうなずきません。 – k0pernikus

    答えて

    0

    は、私は次の操作を行う必要があります。

    要求認証コード
  • 要求
  • 一度リフレッシュトークンが利用可能な場合はアクセストークン+トークン

    をリフレッシュ

    現在のrで新しいトークンペアを要求(アクセス+リフレッシュ)アクセストークンが期限切れになったときにefreshトークン。

    関連する問題