Ich habe eine grundlegende App mit Java, Google Web Toolkit und Google Cloud Datastore geschrieben. Zur Authentifizierung verwende ich Firebase. Wenn das Front-End einen RPC-Aufruf ausführt, übergibt es das Benutzer-Token, damit das Back-End es überprüfen kann.Wie sollte ich Firebase-Backend-Authentifizierung behandeln?
Ich möchte eine VerifyToken-Klasse im Back-End erstellen, die ein Benutzer-Token erhalten wird, rufen Sie die Firebase verifyIdToken zu überprüfen, dann die Benutzer-UID oder 0 zurückgegeben, wenn das Benutzer-Token nicht erfolgreich verifiziert wurde. Die Klasse, die den RPC-Aufruf empfängt, verwendet dann die UID, um Daten abzurufen und sie in der RPC-Antwort zurückzugeben.
Hier ist der aktuelle Code:
public class VerifyToken
{
public String verify(String token)
{
String uid = "0";
try
{
//Connect to Firebase
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("firebaseJsonHere"))
.setDatabaseUrl("dbUrlHere")
.build();
FirebaseApp.initializeApp(options);
//Verify the token
FirebaseAuth.getInstance().verifyIdToken(token)
.addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
System.out.println("uid decoded = " + uid);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e)
{
System.out.println(e.getMessage());
}
});
}catch(Exception e){
System.out.println("Exception: " + e.getMessage());
}
//Return the uid or 0 if not validated
return uid;
}
}
Bitte könnte jemand lassen Sie mich wissen, wie das Ergebnis aus der SuccessListener zu bekommen. Ich kann sehen, dass die UID erfolgreich decodiert wurde, nur nicht sicher, wie man das Ergebnis zurückbekommt.
Vielen Dank, Ed
Danke, jetzt die Antwort hier gefunden: [http://stackoverflow.com/questions/38418472/how-do-i-secure-my-google-cloud-endpoints-apis-with-firebase-token-verification/ 38423163 # 38423163] (http://stackoverflow.com/questions/38418472/how-do-i-secure-my-google-cloud-endpoints-apis-with-firebase-token-verification/38423163#38423163) –