Articles of oauth 2.0

Oauth 2.0:暴露了客户端ID和客户端密钥,这是一个安全问题吗?

当Android oauth 2.0客户端应用程序具有其凭据(客户端ID和客户端密钥)时,硬编码很容易反编译应用程序并检索凭据。 暴露客户端ID和秘密有什么后果?

如何从我的Android应用访问新的Gmail API?

我正在尝试从我的Android应用访问新的Gmail API (已于25.06.2014发布),以便返回某个用户帐户中的所有电子邮件。 我正在使用ADT插件在Eclipse中开发应用程序。 到目前为止我做了什么: 我在Google Developers Console中注册了该应用程序 (链接: console.developers.google.com/project )。 我已实施Google+登录按钮(链接: developers.google.com/ +/mobile/android/sign-in)。 Google+登录按钮可对用户进行身份validation并管理OAuth 2.0流程,从而简化您与Google API的集成。 我已将附加范围“https:// www.googleapis.com/auth/gmail.readonly”添加到Google+授权中,以便访问Gmail API,如 (链接: developers.google.com/gmail/api/v1/reference/users/threads/list )。 此时我有一个初始化的GoogleApiClient对象。 GoogleApiClient对象将ServiceConnection(链接: developer.android.com/reference/android/content/ServiceConnection.html )包装到Google Play服务。 GoogleApiClient对象用于与Google+ API通信,并在与服务建立异步连接后正常运行,表明: Google Play服务正在设备上运行,应用程序Activity已成功绑定服务连接, 用户已选择他们希望与该应用一起使用的帐户,以及 用户的帐户已授予应用请求的权限。 如何从此处继续使用此httprequest获取所有消息? 我此时尝试访问Gmail API,但我收到身份validation错误401:需要登录,即使Google+登录成功,我也成功返回了用户圈子列表。 编辑:SecondActivity.java import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import com.google.android.gms.auth.GoogleAuthException; import com.google.android.gms.auth.GoogleAuthUtil; import com.google.android.gms.auth.GooglePlayServicesAvailabilityException; import […]

Android上使用OAuth2.0的Youtube Data API

我正在尝试在Android上使用带有OAuth 2.0身份validation的YouTubeData API,我正在努力解决它。 我在网上搜索了很多,但对Android实现没什么帮助。 首先,我不清楚获得OAuth令牌的最佳方法是什么。 在文档中,他们建议Android使用Google Play服务库获取它更好。 真的吗? 如果是,则按照本指南进行操作应该非常简单: https : //developers.google.com/android/guides/http-auth 。 但此时我将在String对象中使用令牌..我应该如何将它与YouTubeData API一起使用? 我应该把它放在YouTube.Builder某个地方吗? YouTube youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() { public void initialize(HttpRequest request) throws IOException { } }).setApplicationName(“AppName”).build(); 如果有,有谁知道在哪里? 在StackOverflow上搜索我遇到了这个问题: 获取Auth Token后的操作 – Android Youtube API 。 Ibrahim Ulukaya表示,最好使用GoogleAccountCredential 。 根据我的理解( 访问Google API – GoogleAccountCredential.usingOAuth2与GoogleAuthUtil.getToken() ),Android版GoogleAccountCredential应使用Google Play服务库提供的GoogleAuthUtil ,因此简化此过程非常有用。 我看过Ibrahim […]

Android Google+集成 – 重复UserRecoverableAuthException

我们已就此与Google联系, 我们正在聊天 对于除三星手机以外的设备,这个问题似乎已经解决。 我根据官方说明向应用添加了Google+登录选项。 一旦用户选择了他们的帐户,我希望我的服务器检索他们的Google+个人资料信息,并在我们的网站上更新他们的个人资料以匹配。 第一部分 – 让用户在本地选择一个Google帐户 – 似乎工作正常。 当我尝试为所选帐户请求令牌时,Google身份validation对话框会显示相应的参数; 但是,当我使用该对话框授权应用程序并重新请求令牌时, GoogleAuthUtil.getToken(…)再次抛出UserRecoverableAuthException ( NeedPermission ,而不是GooglePlayServicesAvailabilityException ),我得到同样的对话框,要求我批准! 运行Android 4.1.1的Samsung S3(包含3个Google帐户)和运行4.0.3的Acer A100会出现此问题。 它不存在于运行2.3.4的HTC Glacier上。 相反,HTC Glacier给了我一个有效的身份validation码。 所有设备都安装了最新版本的Google Play服务,并使用不同的Google+帐户。 有人见过这个吗? 我在哪里可以开始调试? 这是完整的代码 – 显然是什么错误? public class MyGooglePlusClient { private static final String LOG_TAG = “GPlus”; private static final String SCOPES_LOGIN = Scopes.PLUS_LOGIN + ” ” + Scopes.PLUS_PROFILE; […]

允许用户使用Google凭据访问您的应用的最佳方式

如果您有一个需要用户注册的Android应用程序,并且希望允许用户通过Google进行login,那么您将如何处理? 我想让Google+login脱离这里的讨论。 我们也没有使用用户凭据来访问Google API,我也不想额外访问Google+的社交function。 似乎有很多select: 使用OAuth2.0进行身份validation logging在Google OAUth2login页面 这并没有提到Android,但它(部分)基于OAuth2访问令牌,但更重要的是对JSON Web令牌id_token的validation。 这种对用户进行身份validation的方式还包括启动WebView以允许用户login到他们的Google帐户以及相当复杂的id_tokenvalidation。 使用OAuth2 / Google Play服务 Google Play服务中有一个示例,更多地关注授权。 它使用GoogleAuthUtil.getToken来检索access_token。 其中的一部分是肯定的authentication,因为对话状态“login到…”。 我是否正确地认为将OAuth2.0stream与access_token用作authentication机制是一种不好的做法? (将访问令牌存储为authentication令牌)。 支持Facebook / Twitterlogin 我问的原因是因为Twitter和Facebook推荐你实施“使用…login”身份validation过程 用Twitter实现login Facebookloginstream为Android 这似乎也完全基于OAuth访问令牌。 我没有意识到的任何其他选项允许您用他们的谷歌帐户authentication用户?

在Android的共享首选项中安全地存储Oauth2访问/刷新标记?

我知道我可以将值设置为“MODE_PRIVATE”,只有我的应用程序/用户ID将能够访问它们,但是,有什么方法让用户在任何时候访问它们? 那么将它们存储在共享首选项中是否“安全”,还是有更好的地方? 此外,如果我稍后决定公开某些用户设置的偏好,我是否可以隐藏这些值? 谢谢。 编辑:我也知道内部存储,但我想知道是否可以实现更简单的共享首选项。

Android订阅和Google API

我正尝试使用Google Play中新的Android订阅系统进入我的应用程序(我已经有了应用内结算工作正常)。 我已经成功地完成了订阅计费,但是现在我想通过使用google apis检索有关此订阅的信息,如android文档(http://developer.android.com/guide/market/billing/billing_subscriptions.html)中所示。 。 我希望我的服务能够执行API调用来检索这些信息,但是我有身份validation问题(使用oauth2)。 到目前为止,这是我做的(在我的PHP服务): require_once 'google-api-php-client/src/apiClient.php' const SERVICE_ACCOUNT_NAME = 'email from services account access'; $key = 'content of my private key retrieved from services account access'; $client = new apiClient(); $cred = new apiAssertionCredentials(SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/androidpublisher'), $key); $assertion = $cred->generateAssertion(); // This generate my encrypted JWT 然后,我尝试使用此JWT对象检索访问令牌。 问题是,当我使用访问令牌时,我得到了开发人员帐户不拥有应用程序的错误,这是不正确的。 (我知道这不是这样做的,但我只是想使用JWT检索access_token来理解为什么它不工作,如果我按照google apis文档中的说明,它不工作)。 我需要从服务器执行这个API调用,因此不需要涉及最终用户(无需手动同意)。

升级Firebase后出现OAuth2问题

我有一个工作的Android应用程序(也许更好地说HAD)。 该应用程序正在使用一些第三方库,包括:谷歌地图,Firebase,firebaseui。 转换应用程序使用新的Firebase后,我偶然发现了两个主要问题: firebaseuilogin屏幕改变了,现在看起来像这样(从login对话框变成活动): 这当然是完全不同于旧版本的,也有一些与debugging版本不同的奇怪原因。 我无法使用谷歌login与logcat中显示以下错误: com.google.firebase.FirebaseException:发生内部错误。 [找不到服务器configuration中的OAuth2客户端ID。 ] 在debugging版本中,这个问题不再发生。 只是为了清楚debugging构build变体使用相同的代码库,但不同的firebase数据库。

Android – 如何获得谷歌加访问令牌?

您好,我正在获取谷歌加访问令牌,而不使用范围与OAuth 2.0客户端ID。 但是使用此访问令牌不会获取电子邮件地址。 如何获取用户的电子邮件地址? accesstoken和OAuth 2.0客户端ID之间是否有区别? 我用了下面的代码, String accessToken=""; try { accessToken = GoogleAuthUtil.getToken( getApplicationContext(), mPlusClient.getAccountName(), "oauth2:" + Scopes.PLUS_LOGIN + " " + Scopes.PLUS_PROFILE); System.out.println("Access token==" + accessToken); } catch (Exception e) { e.printStackTrace(); }

validation我的“应用程序”Google云端点不是“用户”

我正在尝试的是将我的Android应用程序authentication到Google Cloud Endpoint。 基本上,端点应该只允许我的Android应用程序访问的方法,没有别的。 我做了这些事情 – 在Google云端控制台的Eclipse中使用我的SHA1值创build客户端ID。 在Google云端控制台中为我的端点项目创build一个Web客户端ID。 将这两个客户端ID添加到每个端点上提到的“@Api”中。 在端点方法中添加一个额外的“用户”参数。 重新生成并将后端部署到云。 但是,当我运行这个“用户”总是作为“空”来。 我正在努力寻找一个适当的工作方法来完成这一切。 我search了很多论坛,但没有任何适当的答案。 这里是另一个类似的post限制访问谷歌云terminal到Android应用程序 这是我使用的参考 – https://developers.google.com/appengine/docs/java/endpoints/auth 有没有人在这里做过? 我的主要目标是不允许未经身份validation的应用程序和外部世界访问端点,出于明显的安全原因。 我不想使用基于最终用户的身份validation,因为我想保持我的应用程序非常简单。