![]() |
GoogleSignInApi zur Verifizierung von Back-End Requests / Daraja Framework
Hallo,
hat FireMonkey (Android) Zugriff auf die GoogleSignInApi Klasse? Darüber kann eine App ein Google Token abrufen, das dann an eigene HTTP Back-End Server übermittelt und dort via Google API validiert und weiter genutzt werden kann:
Code:
Ich habe das mit einem Android Studio Beispiel-Projekt getestet und das erzeugte Token dann serverseitig (mit Indy) benutzt, um von Google Informationen zu diesem Token abzurufen.
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) { GoogleSignInAccount acct = result.getSignInAccount(); String idToken = acct.getIdToken(); mIdTokenTextView.setText("ID Token: " + idToken); // TODO(user): send token to server and validate server-side } else { mIdTokenTextView.setText("ID Token: null"); } Wenn das Token gültig ist, erhält der Server von der Google API eine JSON Datei die etwa so aussieht:
Code:
Falls der Java Code in FireMonkey im Prinzip abbildbar ist, kann das Token mit wenig Aufwand für die Verfizierung von Requests an in Delphi geschriebenen Back-End Servern eingesetzt werden.
{
"iss": "https://accounts.google.com", "sub": "110169484474386276334", "azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com", "aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com", "iat": "1433978353", "exp": "1433981953", "email": "testuser@gmail.com", "email_verified": "true", "name" : "Test User", "picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg", "given_name": "Test", "family_name": "User", "locale": "en" } Beispielcode für die Anfragen zwischen dem Android Gerät und dem Back-End Server einerseits, und zwischen Back-End Server und dem Google OAuth 2 Service andererseits würde ich dann im ![]() Der Back-End Server kann anhand des Tokens prüfen: * welche app-spezifische Client-ID die App verwendet (diese steht im Feld "aud" des Tokens und kann benutzt werden um gefälschte Token zu erkennen) * dass das Token von Google erstellt wurde * dass Google das Token an ein Gerät sendete an dem der Benutzer mit dem Google-Konto angemeldet ist das über die Email Adresse in "email" eindeutig identifiziert ist Im Gegensatz zu einfacheren Methoden, bei denen ein Gerät sich beim Back-End Server identifizieren muss, wird mit dem Token keine Benutzer-ID wie zum Beispiel die Email Adresse des Google Kontos übermittelt. Stattdessen sendet der Back-End Server nur das vom Client per HTTPS übermittelte Token an einen Google Service, der daraufhin die Benutzerangaben an den Back-End Server zurückgibt. Bei Interesse melde ich mich hier wieder wenn es im ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz