0
我可以通過Guzzle通過外部API從Laravel連接。該api需要通過具有授權碼的oAuth2進行身份驗證。我想知道如何集成測試重定向方案,只有用戶名和密碼?單元測試oAuth2授權碼
換句話說:如何模擬瀏覽器動作,並重定向到在集成測試中從重定向的uri中「抓取」授權碼?
流量
- 我請求(GET)
- 我必須在用戶名和密碼,
- 填寫正確登錄後,我會被重定向到指定的外部API的登錄頁面重定向URL以德授權碼的查詢參數
自動測試
- 我可以連接到api,我可以做GET,POST和PUT請求
- 重定向方案通過瀏覽器工作,但在集成測試場景中,我只有用戶名和密碼但不能字段CSRF,VIEWSTATE等
在第一GET請求的響應(獲取登錄表單)有多個隱藏字段(CSRF,視圖狀態)。我無法在我的POST請求中模擬這些字段。我只有用戶名和密碼字段。所以在這種情況下,我從來沒有被重定向,但它會再次返回登錄頁面。因爲我錯過了關鍵的隱藏領域。
你想實現什麼?單元測試相關邏輯,還是使用僞造/模擬oauth服務器創建集成測試? – k0pernikus
我想從重定向uri獲得授權碼。僞造或模擬的auth服務器有什麼用處? – schellingerht
這取決於你的用例。你真的想在你的測試中調用一個外部api,它的成功將會與外部API相關嗎?讀你的問題,我很難確定你想要達到的目標。 – k0pernikus