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 之后的 url
和 redirect_uri
相同。 Getting 401 unauthorized error - "invalid_grant"
首次登录
我不能强迫用户再次要求登录。任何替代方案或解决方案。如果需要更多详细信息,请告诉我
invalid_grant
错误出现在以下情况:
- 授权代码已被使用 - 也许您正在缓存代码?
- 授权码已通过更新的代码失效?
grant_type
的值既不是 authorization_code
也不是 refresh_token
请在 POST /token documentation 中查找更多详细信息。
我在我的项目中实现了 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 之后的 url
和 redirect_uri
相同。 Getting 401 unauthorized error - "invalid_grant"
首次登录
我不能强迫用户再次要求登录。任何替代方案或解决方案。如果需要更多详细信息,请告诉我
invalid_grant
错误出现在以下情况:
- 授权代码已被使用 - 也许您正在缓存代码?
- 授权码已通过更新的代码失效?
grant_type
的值既不是authorization_code
也不是refresh_token
请在 POST /token documentation 中查找更多详细信息。