OAuth2.0: Exception- FileNotFound при выполненииTokenRequest - PullRequest
0 голосов
/ 05 августа 2020

Я использую библиотеку AppAuth для аутентификации Oauth2. https://github.com/openid/AppAuth-Android

Я изменил URL-адреса в соответствии с моим поставщиком oauth. Я указал действительную конечную точку авторизации, идентификатор клиента, uri перенаправления, uri токена, тип ответа (код). Я не нашел способа добавить секрет клиента. Когда я запускаю приложение, я вижу веб-страницу в браузере, ввожу учетные данные, а затем происходит перенаправление обратно в приложение. Когда выполняется запрос на получение токена, я получаю исключение. Запрос токена не выполняется. Есть идеи, почему это могло произойти? URL-адрес обмена токенами правильный, и я не уверен, почему он жалуется на то, что файл не найден по этому конкретному URL-адресу токена.

W / AppAuthSample: Ошибка обмена токенами

AuthorizationException: {"type":0,"code":3,"errorDescription":"Network error"}

    at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:244)

    at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:206)

    at android.os.AsyncTask$2.call(AsyncTask.java:333)

    at java.util.concurrent.FutureTask.run(FutureTask.java:266)

    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

    at java.lang.Thread.run(Thread.java:764)

 Caused by: java.io.FileNotFoundException: <token_url>

    at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:251)

    at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)

    at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:26)

    at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:239)

    at net.openid.appauth.AuthorizationService$TokenRequestTask.doInBackground(AuthorizationService.java:206) 

    at android.os.AsyncTask$2.call(AsyncTask.java:333) 

    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 

    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 

    at java.lang.Thread.run(Thread.java:764) 

1 Ответ

0 голосов
/ 05 августа 2020

Можно ли запустить образец AppAuth без ошибок? Возможно, действуйте следующим образом:

  • Следуйте инструкциям в моем сообщении в блоге , чтобы получить рабочее решение
  • Затем перенаправьте на свой собственный сервер авторизации, чтобы увидеть, если это тоже работает
  • Затем обновите приложение соответствующим образом

Похоже, URL-адрес конечной точки токена неверен. Не могли бы вы публиковать HTTP-сообщения? Кстати, вам не нужен секрет клиента, так как генерируется секрет времени выполнения PKCE. См. Шаги 8 и 10 моего более расширенного сообщения в блоге , чтобы узнать, как это должно выглядеть.

...