2017-02-14 60 views
1

上週我更新了我們的Android應用程序,使用舊的舊版OAuth API(https://developer.linkedin.com/docs/oauth2-legacy)更新到新的V2版本(https://developer.linkedin.com/docs/oauth2)。LinkedIn OAuth 2,如果CAPTCHA向用戶展示,則不會調用redirect_uri

表面上看起來可以正常工作,而我的redirect_url被正確引導,但是,如果LinkedIn決定通過驗證碼驗證用戶,則不會返回redirect_url,並且用戶將被帶到LinkedIn主頁。與呼叫

  1. 開始使用OAuth https://www.linkedin.com/oauth/v2/authorization
  2. 輸入電子郵件,但後來一幫錯密碼:

    要重現此。直到你觸發CAPTCHA流程。

  3. 完整的CAPTCHA。當重定向到登錄頁面,在正確的密碼輸入

這將導致以下網址,LinkedIns側被調用,通過CAPTCHA流去的時候:

  1. https://www.linkedin.com/uas/login?session_redirect=
  2. https://www.linkedin.com/uas/consumer-captcha-v2?challengeId=
  3. https://www.linkedin.com/nhome/?trk= < - OH OH,這應該是登錄成功,後面是我們的redirect_url

請注意,不通過CAPTCHA的認證流程看起來像這樣並且工作正常。

  1. https://www.linkedin.com/oauth/v2/authorization-postlogin?app_id=
  2. https://www.linkedin.com/uas/login?session_redirect=%2Foauth%2Fv2%2Flogin-success%3Fapp_id
  3. https://www.linkedin.com/oauth/v2/login-success?app_id=
  4. http://www.ourCoolCallback/linkedin?code= < - YAY

有沒有人見過這個問題?有誰知道如何解決這個問題,因爲我完全處於虧損狀態。似乎重定向在事物的LinkedIn方面正在消失。由於這曾經爲我們使用傳統OAuth工作 - 我猜測LinkedIn的一面是什麼?任何幫助,將不勝感激!

回答

2

您可以啓用JavaScript。它將使web驗證中的驗證碼沒有任何問題:

以下是使用驗證碼成功登錄的截屏代碼。

 webView.clearCache(true); 
     webView.clearHistory(); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

enter image description here

enter image description here

enter image description here