如何在 Android 中对 Uber SDK 中的用户进行身份验证?
Posted
技术标签:
【中文标题】如何在 Android 中对 Uber SDK 中的用户进行身份验证?【英文标题】:How to authenticate user in Uber SDK in Android? 【发布时间】:2016-10-01 19:10:20 【问题描述】:参考this link,我将 Uber sdk 集成到我的应用程序中。在我在 Uber 开发者网站上注册我的应用程序之前,我得到了我的客户端 ID 和客户端密码。
我在我的应用程序类中添加了以下代码:
UberSdk.initialize(this, "MY_CLIENT_ID");
UberSdk.setRedirectUri("MY_REDIRECT_URI");
UberSdk.setSandboxMode(true);
然后在我的片段中:
oncreate():
accessTokenManager = new AccessTokenManager(getContext());
loginManager = new LoginManager(accessTokenManager);
List<Scope> scopes = new ArrayList<Scope>();
scopes.add(Scope.PROFILE);
scopes.add(Scope.RIDE_WIDGETS);
Date expirationTime = new Date(System.currentTimeMillis());
String token = "Token";
AccessToken accessToken = new AccessToken(expirationTime, scopes, token);
accessTokenManager.setAccessToken(accessToken);
Log.d("ttt", "accessToken: " + accessTokenManager.getAccessToken());
loginManager.loginWithScopes(getActivity(), scopes);
onActivityResult():
LoginCallback loginCallback = new LoginCallback()
@Override
public void onLoginCancel()
// User canceled login
Log.d("ttt", " User canceled login " );
Toast.makeText(getContext(), "User canceled login", Toast.LENGTH_SHORT).show();
@Override
public void onLoginError(@NonNull AuthenticationError error)
// Error occurred during login
Log.d("ttt", "Error occurred during login" );
Toast.makeText(getContext(),"Error occurred during login",Toast.LENGTH_SHORT).show();
@Override
public void onLoginSuccess(@NonNull AccessToken accessToken)
// Successful login! The AccessToken will have already been saved.
Log.d("ttt", "Successful login! " );
Toast.makeText(getContext(),"Successful login!",Toast.LENGTH_SHORT).show();
;
loginManager.onActivityResult(requestCode, resultCode, data, loginCallback);
我不知道如何添加重定向 uri 以及从哪里获得重定向 uri。它的实际用途是什么(搜索了很多仍然不清楚它的作用)。
单击 Uber 乘车按钮后,它会导航到一些登录活动,并显示一个弹出窗口,提示“验证您的身份时出现问题”。
我在这里做错了什么?
【问题讨论】:
【参考方案1】:这里有一篇很棒的文章,介绍了在 Oauth 2.0 中重定向 URI 的用途。 What's a redirect URI? how does it apply to ios app for OAuth2.0?.
TLDR:您的应用程序可能存在于 Web 和移动应用程序上,并且重定向 URI 是在流程完成后重定向回的端点。对于移动客户端,您可以在Uber developer dashboard 中轻松地将重定向 URI 设置为“http://localhost”,因为它与网络上的要求不同。
我们正在研究进一步简化此功能,因此请密切关注我们未来的版本!
【讨论】:
非常感谢 tsmith...这些链接很有帮助。以上是关于如何在 Android 中对 Uber SDK 中的用户进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
当我在我的项目中添加 uber sdk gradle 时,它返回 500+ 编译错误
如何从自定义 Android 应用程序启动 uber eats 应用程序