You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Uber SDK OAuth登录连接问题:登录成功后出现错误

解决Uber SDK LoginActivity登录后错误的排查方案

针对你用LoginManager登录关联邮箱为fikarrnot28@gmail.com的Uber账户后出现错误的问题,结合你给出的WebView登录GET请求信息,我整理了几个实用的排查方向,一步步来定位问题:

  • 先核对回调URI的一致性
    从请求里的redirect_uri能看到是指向https://www.fikarrnot.com相关的地址,这是OAuth登录里最容易踩坑的点。你需要去Uber开发者后台,找到你注册的应用,检查Redirect URI配置是否和这个地址完全匹配——要注意大小写、HTTPS协议、路径后缀,哪怕多了个斜杠或者编码错误都会导致登录失败。如果是Android App用自定义Scheme(比如uberauth://callback),那要确保后台和代码里的配置统一。

  • 检查Client ID的有效性
    请求里的client_id_AZAHxnjsACGj4oNYtQmHT2BoxLoRslm,先确认这个ID是不是你在Uber后台创建应用时生成的正确ID,有没有复制时多了下划线或者漏了字符?另外还要确认你的应用状态是“已激活”的,要是还在审核或者被限制了,也会导致登录失败。

  • 确认关联邮箱的账户状态
    先直接用fikarrnot28@gmail.com在Uber官网登录试试,看看账户本身有没有问题:比如是不是需要验证邮箱、有没有异常登录记录被平台限制、有没有违反Uber开发者条款的情况。如果官网登录都有问题,那SDK登录肯定也会失败。

  • 排查WebView的配置细节
    LoginActivity里的WebView配置不到位也会搞砸登录流程,你可以检查这几点:

    • 有没有开启JavaScript?Uber登录页面依赖JS,要设置webSettings.setJavaScriptEnabled(true)
    • 有没有正确处理重定向?WebView的shouldOverrideUrlLoading方法不能拦截OAuth的回调跳转,要让它正常加载
    • 有没有允许第三方Cookie?Uber登录需要Cookie维持会话,记得开启:CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
  • 升级SDK并捕获具体错误日志
    旧版本的Uber SDK可能存在已知的登录bug,建议先升级到最新稳定版试试。另外,一定要捕获LoginManager回调里的具体错误信息,比如在onActivityResult里加这段代码:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == LoginManager.REQUEST_LOGIN) {
            if (resultCode != RESULT_OK) {
                String error = data.getStringExtra(LoginManager.EXTRA_ERROR);
                String errorDesc = data.getStringExtra(LoginManager.EXTRA_ERROR_DESCRIPTION);
                Log.e("UberLoginError", "错误码:" + error + ",描述:" + errorDesc);
            }
        }
    }
    

    这些错误信息会直接告诉你问题根源,比如是invalid_redirect_uri(回调URI无效)还是unauthorized_client(客户端未授权),比只看GET请求要精准得多。

内容的提问来源于stack exchange,提问作者Sayan Mukherjee

火山引擎 最新活动