5

Es gibt mehrere Methoden, um ein Gerät zu identifizieren - IMEI/IMSI/ESN, GoogleID, Ihre eigene verschlüsselte GUID, gespeichert im privaten Geschäft usw. Aber solange die Leute ihre Geräte alle 3-6 Monate wechseln, ist es wichtig, nicht zu identifizieren das Gerät aber genau der Benutzer.Wie bekomme ich Google USER ID (nicht die Geräte ID) sicher?

Wir wissen, dass Google eine eindeutige ID verwendet, um einen Nutzer (eine E-Mail) zu identifizieren, der den Kauf bei Google Play usw. ermöglicht. Außerdem wissen wir, dass Google Devs den Zugriff auf diese ID verweigert, sie gespeichert und beispielsweise für Spam verwendet hat. Eigentlich können wir jetzt mit Account Manager mindestens einen von ihnen bekommen. Zumindest weiß ich nicht, wie zu unterscheiden, welches Konto aktiv ist und verwendet wird, um meine App zu kaufen.

In Widows Phone sehe ich einen klugen Ansatz: System gibt ein Entwickler einige Hash von Benutzer-Account-ID/E-Mail. Sie können also nichts anderes tun, als nur Ihren Benutzer zu identifizieren. Genau das, was ich machen möchte! Selbst wenn jemand diese ID gestohlen hat, kann er sie nicht als E-Mail oder was auch immer verwenden.

Also suche ich etwas gleich. Dennoch habe ich keine eindeutigen Informationen darüber gefunden, wie man einen Benutzer sicher identifizieren kann. Es gibt viele Beiträge, viele Meinungen, aber immer noch keinen klaren und verständlichen Weg.

Im IAP-Sicherheitsschema bisher denke ich daran, alle Google-Konten auf dem Gerät und erinnere mich an Double-MD5 von ihnen auf meinem oder Google-Server für bestimmte Kauf/order_no. Später, wenn jede Instanz meiner App diesen Kauf anfordert, sendet Double-MD5 seines Eigentümers google-id, Server vergleicht, ob mindestens eines der Konten, die es für diesen bestimmten Kauf/order_no erinnert, gleich dieser ID ist, und dann wird angemessen antworten.

Aber vielleicht gibt es mehr klares Schema?

+0

kann dies helfen http://android-developers.blogspot.in/2011/03/identifying-app-installations.html – Raghunandan

+0

Benutzer zu welchem ​​Zweck identifizieren? Ich denke, es ist besser, das Gerät als den Benutzer zu identifizieren. – Raghunandan

+0

Für die meisten Anwendungen besteht die Anforderung darin, eine bestimmte Installation und kein physisches Gerät zu identifizieren. Überprüfen Sie den Abschluss Teil des Blogs – Raghunandan

Antwort

1

Die Android-Entwickler, die die In-App-Abrechnungs-API implementiert haben, sollten eine einfache Funktion hinzugefügt haben, die einen Hash der Google-Konto-E-Mail zurückgibt, die derzeit bei In-App-Käufen verwendet wird. Das Hash macht es ziemlich unmöglich, es für etwas anderes zu verwenden, als eine eindeutige Einkaufsidentität zu bestimmen. Auch ein Array von Hashes der aktuellen Liste von Google E-Mail-Konten.

Ja, es gibt einen Weg um eine Liste von Konten mit AccountManager zu erhalten, aber dies erfordert zusätzliche Berechtigungen und erhalten die E-Mail-Adressen des Benutzers, die für die Zwecke der In-App-Kauf wie Overkill und eigentlich unerwünscht, wenn Alles, was man tun möchte, ist die Überprüfung der eindeutigen Kaufidentität des Benutzers.

Das Hash-Array der aktuellen Liste der Google E-Mail-Konten kann verwendet werden, um zu überprüfen, ob eines der aktuellen Google-E-Mail-Konten auf dem Gerät beim ursprünglichen Kauf des In-App-Abrechnungselements verwendet wurde.