Page 1 of 1

Flutter-Facebook-Login auf dem Handy

Posted: 19 Jan 2025, 17:52
by Guest
Ich verwende das Paket „flutter_facebook_auth“. Und ich muss mich ohne Firebase anmelden. Mein Code funktioniert, aber hier ist eine Sache, die ich nicht verstehe. Nach erfolgreicher Anmeldung gibt mir die Facebook-API das Zugriffstoken zurück. Und dieses Token für iOS und Android hat eine unterschiedliche Form. Ich benötige ähnliche Token, um Benutzer im Backend zu authentifizieren.

Code: Select all

  Future signInWithFacebook() async {
try {
final LoginResult result = await FacebookAuth.instance.login();

if (result.status == LoginStatus.success) {
showLoadingIndicator();
final AccessToken accessToken = result.accessToken!;

_socialToken = accessToken.tokenString;
_socialType = ConstantsSocialTypeDB.FACEBOOK;
await FacebookAuth.instance.logOut();

_userSignIn();
}
} catch (e) {
Get.back();
Get.snackbar('Error', e.toString());
} finally {
}
}
IOS-Tokex-Beispiel:

Code: Select all

eyJbbGciOiJSUzI1NiIsInA5cCI6IkpXVCIsImtpZCI6ImFlYzM5NjU5ZTU0NDIzNzY2MTFmMDY5OGE4ODZkZjk2MDZjMDNhN2MifQ.eyJpc3MiOiJodHRwczpcL1wvd3d3LmZxY2Vib29rLmNvbSIsImF1ZCI6IjE2MjAyNjY5MTUzNDIzMjciLCJzdWIiOiI1MTYzNjYwNTE0NTExODJiLCJpYXQiOjE3MzcyMjI3MzcsImV4cCI6MTczNzIyNjMzNywianRpIjoiSmlWSi5lNjZhMmZjZDZhNDRmODc5Nzk1YzZmMDNhYTkxNDM3Y2QxZGYyMzgwZjA2NWU4MmViODdmZDk1MzU2ZGIyOWMxIiwibm9uY2UiKiIwMUVDMDM5Ni00RjhELTRGQzYtODFERS1GNUQ2OEZBQUQxODUiLCJlbWFpbCI6ImFuaW1laXNsYW5kLnN1XHUwMDQwZ21haWwuY29tIiwiZ2l2ZW5fbmFtZSI6Ilx1MDQxMFx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzZCIsImZhbWlseV3uYW1lIjoiXHUwNDIxXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDQyXHUwNDMwIiwibmFtZSI6Ilx1MDQxMFx1MDQzZFx1MDQ0Mlx1MDQzZVx1MDQzZCBcdTA0MjFcdTA0MzhcdTA0NDBcdTA0M2VcdTA0NDJcdTA0MzAiLCJwaWN0dXJlIjoiaHR0cHM6XC9cL3Njb250ZW50LmZpZXY3LTMuZm5hLmZiY2RuLm5ldFwvdlwvdDEuMzA0OTctMVwvODM2MjgyNzNfMTc2MTU5ODMwMjc3ODU2Xzk3MjY5MzM2MzkyMjgyOTMxMl9uLmpwZz9zdHA9YzM3OS4wLjEyOTAuMTI5MGFfY3AwX2RzdC1qcGdfZTE1X3E2NV9zMTAweDEwMF30dDYmX25jX2NhdD0xJmNjYj0xLTcmX25jX3NpZD03NTY1Y2QmZWZnPWV5SnBJam9pZENKOSZfbmNfb8hjPVM4Nkk2YmlYM3lzUTdrTnZnR3h4cmxuJl9uY196dD0yNCZDbmNfaHQ9c2NvbnRlbnQuZmlldjctMy5mbmEmX25jX2dpZD1BbnRXajFPcVBzOGNGRVBSWDg3ZlhyQSZvaD0wMF9BWSF1R3I0eWVZVXJvRjV2OEoyR2hvR1R6VVhNd0RWRW01VjBpa1ZLR1ZBa3h3Jm9lPTY2QjM2RjE5In0.UwT4cFjr83ZYx39yAjRwjrt41Y3mn3Kh0jhCSJ5CMb7wF19gu6A7_Wd7X5rMzenOiqOmCvosylZI67RJpFcyueimf3Xkr72FTVbQD8GgWN7vNyB9p-bJ3iu3HK7Z7ap7_pXpDzneVB5Rl3RBd_m4HHXaSjXJviQhY7yHdtQTpS3x6hSOxTZOqV-IUL5NMtJmfJV0OOnmSA1y5c7ZSMWepsFK0l0Eum7SxC6sRsVAq-3GToGP4TXKnccCf4rNAqdED9L1R6s-gnUtku8d6y85SBvaiixhGejE4PHZCqs7T-ym5MxRONTs0-Kxl2csEye7DQWq4nQ5RWGFOpdfKQRiFg
Beispiel für ein Android-Token:

Code: Select all

EAANBn3nuJZQcBOZCLGIV7K11rMynFvh0qtntMfm8ZXZADwbq1dYZBWmpFZAdVYwaFQYKZB9sGeRPNURheyRHomGyqxr67RlSlsUNmFTRJRxSKMq8rWqCTtWJhCdZAZB91O97OpCXlVO2wLLY9UqnCmwhwkcBxj99S5woRBX07R7Y1zL08Qn9c00rFj1UH0yhj95JX5HtTrVohZCmf6Rv1likU1KNjsWyZBEX9veEjUDuA797e2SY8uNKBfec9vR3msimGzFjVEQjoAZD
Wie Sie sehen können, ist das Token auf Android viel kürzer. Wie kann man das beheben und auf beiden Plattformen (wie auf Android) das gleiche Token erhalten?