Uber 登录失败给第一次登录 "invalid_login" 并且在其他时间运行良好

Uber login fail gives "invalid_login" for first time login and works well for other time

我在我的项目中实现了 Uber-cabs。当我没有在用户设备上安装 Uber 应用程序时。优步登录首次失败并显示错误消息 "invalid_grant"。但是,如果您立即再次登录,则效果很好。如果 Uber 应用程序安装在用户设备上,则没有问题。

Webview for Uber login:-
     mPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
            if (!mPreferences.contains(Constants.PREF_KEY_AUTH_UBER)) {

                AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
                alert.setTitle("Uber Login");


                WebView mWebView = new WebView(getContext()) {
                    @Override
                    public boolean onCheckIsTextEditor() {
                        return true;
                    }
                };

                mWebView.getSettings().setJavaScriptEnabled(true);

                WebViewClient client = new WebViewClient() {


                    @SuppressLint("CommitPrefEdits")
                    @Override
                    public void onPageFinished(WebView view, String url) {

                        Log.e(TAG, "onPageFinished: " + url);

                        if (url.contains("localhost:8888")) {
                            final String authToken = url.substring(url.indexOf("=") + 1);
                            presenter.postForUberToken(new UberRequestsPresenter.UberPresenterForToken() {
                                @Override
                                public void onTokenReceivedOnError() {
                                    progressBarUberProductListLoading.setVisibility(View.GONE);
                                    showToast(getActivity(), getResources().getString(R.string.error_msg_uber));
                                }

                                @Override
                                public void onTokenReceived(UberRequestsPresenter.UberTokenReceivedBody body) {
                                    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getContext());
                                    pref.edit().putString(Constants.PREF_KEY_AUTH_UBER, gson.toJson(body)).commit();
                                    uberLogin(body, true);
                                }
                            }, authToken);
                            if (mDialogWebViewOla != null) {
                                mDialogWebViewOla.dismiss();
    //                            if (getActivity().findViewById(R.id.progress_bar) != null)
    //                                getActivity().findViewById(R.id.progress_bar).setVisibility(View.VISIBLE);
                            }
                        }
                    }
                };

                mWebView.setWebViewClient(client);
                alert.setView(mWebView);
                mDialogWebViewOla = alert.show();
                mWebView.loadUrl(UBER_AUTH_HIT_URL);
@onPageFinished 之后的

urlredirect_uri 相同。 Getting 401 unauthorized error - "invalid_grant" 首次登录

我不能强迫用户再次要求登录。任何替代方案或解决方案。如果需要更多详细信息,请告诉我

invalid_grant 错误出现在以下情况:

  • 授权代码已被使用 - 也许您正在缓存代码?
  • 授权码已通过更新的代码失效?
  • grant_type 的值既不是 authorization_code 也不是 refresh_token

请在 POST /token documentation 中查找更多详细信息。