Authentifiziere meine "App" bei Google Cloud Endpoints nicht als "Nutzer"

8

Ich versuche, meine Android-App für Google Cloud Endpoint zu authentifizieren. Grundsätzlich sollten die Endpunkte meiner Android-App nur erlauben, auf die Methoden zuzugreifen und sonst nichts.

Ich habe diese Dinge getan -

  1. Erstellen Sie eine Client-ID mit meinem SHA1-Wert in Eclipse in der Google Cloud Console.

  2. Erstellen Sie eine Web-Client-ID in der Google Cloud Console für mein Endpunktprojekt.

  3. Fügen Sie diese beiden Client-IDs in der auf jedem Endpunkt angegebenen "@Api" hinzu.

  4. Fügen Sie in den Endpunktmethoden einen zusätzlichen "user" -Parameter hinzu.

  5. Erneutes Generieren und Bereitstellen des Back-Ends in der Cloud.

Aber wenn ich das ausführe, kommt der "Benutzer" immer als "null". Ich bin am Ende meiner Weisheit und versuche eine geeignete Arbeitsmethode zu finden, um all das zu tun.

Ich habe viele Foren durchsucht, aber keine richtigen Antworten.

Hier ist ein weiterer ähnlicher Beitrag Zugriff auf Google Cloud-Endpunkte beschränken auf Android App

Dies ist die Referenz, die ich verwende - Ссылка

Hat jemand das hier schon mal gemacht? Mein Hauptziel ist es, nichtauthentifizierten Apps und der Außenwelt aus offensichtlichen Sicherheitsgründen den Zugriff auf die Endpunkte zu verweigern. Ich möchte keine Endbenutzer-basierte Authentifizierung verwenden, da ich meine App sehr einfach halten möchte.

    
user3034970 05.12.2013, 09:49
quelle

3 Antworten

0

Es hört sich so an, als würde es funktionieren. Sie steuern, welche Client-Apps Ihre Endpunktmethoden über die Client-IDs aufrufen können, wie Sie es bereits getan haben. Der Parameter "Benutzer" wird genau deshalb als "null" angezeigt, weil Sie keine Endbenutzerauthentifizierung durchführen. Der Parameter User repräsentiert einen tatsächlichen realen Benutzer (Google-Konto). Wenn Sie also keine vom Endbenutzer authentifizierten Methoden benötigen, können Sie den Parameter User einfach nicht definieren oder den Nullwert ignorieren. Sie haben angegeben, dass Ihr Problem darin besteht, dass der Parameter User auf null gesetzt ist. Was erwartest du in diesem Szenario?

    
Preston Landers 05.12.2013 23:45
quelle
0

Sie müssen die Authentifizierung auf dem Client aufrufen, dann "injiziert" möglicherweise die von Ihnen verwendete Bibliothek die Benutzerinformationen.

    
Kevin Guerra 10.07.2014 03:29
quelle
0

Folgendes hat für mich funktioniert:

Nehmen wir an, Sie haben die folgenden Schlüssel:

%Vor%

statische letzte Zeichenfolge ANDROID_CLIENT_ID="somekeyfor androidclientid.apps.googleusercontent.com"; statische letzte Zeichenfolge ANDROID_AUDIENCE = WEB_CLIENT_ID;

Ihre Api Anotation sollte wie folgt aussehen:

%Vor%

Beachten Sie in der Anmerkung unten, wie Ihre Zielgruppe die Variable ist - & gt; ANDROID_AUDIENCE, die gleich WEB_CLIENT_ID ist.

Wenn Sie in der App-Seite das Objekt googleAccountCredential erstellen, sollten Sie die Web-Client-ID wie folgt übergeben:

%Vor%

Beachten Sie, dass Ihr Benutzerobjekt auf dem Endpunkt auch dann als Null ausgegeben wird, wenn der Kontoname, den Sie in "mAccountCredentials.setSelectedAccountName" ("accontname") übergeben, nicht auf dem Gerät vorhanden ist. Stellen Sie daher sicher, dass der angegebene Kontoname auf dem Android-Gerät existiert, indem Sie zu - & gt; (Einstellungen / Konten)

    
Dawgeer 25.11.2016 22:36
quelle