如何获取Google USER ID(不是设备ID)?

Ter*_*ium 5 android user-identification userid in-app-purchase android-lvl

有几种方法可以识别设备 - IMEI/IMSI/ESN,GoogleID,您自己的加密GUID,保存在私人商店等等.但是,只要人们每3-6个月切换一次设备,重要的是不要识别设备而是确切地说是用户.

我们知道Google使用唯一ID来识别允许在Google Play上购买的用户(电子邮件)等.此外,我们知道谷歌拒绝开发者访问此ID,保存并用于垃圾邮件等.实际上,现在我们可以使用客户经理来获取它,至少其中一个.至少我不知道如何区分哪个帐户处于活动状态并用于购买我的应用程序.

在Widows Phone中,我看到了一个明智的方法:系统为开发人员提供了一些来自用户帐户ID /电子邮件的哈希值.除了识别您的用户之外,您无法对其执行任何操作.正是我想要做的!即使有人会窃取这个身份证,他也不能将其用作电子邮件或其他任何东西.

所以我搜索类似的东西.我仍然没有找到关于如何安全地识别用户的明确信息.有很多帖子,很多意见,但仍然没有明确和可理解的方式.

到目前为止,在IAP安全方案中,我想到在设备上获取所有谷歌帐户并记住我或谷歌服务器上的双md5用于特定购买/订单_no.稍后,当我的应用程序的任何实例将请求此购买时,发送其所有者google-id的双md5,服务器将比较它记住此特定购买/ order_no的至少一个帐户是否等于该ID,然后将回复得当.

但也许有更明确的方案?

Gin*_*ino 2

实现应用内计费 API 的 Android 开发人员应该添加一个简单的函数,该函数返回当前用于应用内购买的 Google 帐户电子邮件的哈希值。哈希值使得除了确定唯一的购买身份之外几乎不可能将其用于任何其他用途。此外,还有当前 Google 电子邮件帐户列表的哈希值数组。

是的,有一种方法可以解决这个问题,即使用 AccountManager 获取帐户列表,但这需要额外的权限并获取用户的电子邮件地址,对于应用内购买的目的来说,这似乎有点过头了,如果所有人都想要的话,这实际上是不可取的要做的就是验证用户的唯一购买身份。

当前 Google 电子邮件帐户列表的哈希值数组可用于验证设备上当前的任何当前 Google 电子邮件帐户是否用于应用内结算项目的原始购买。