(Feat) Add google
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import 'package:pocketbase/pocketbase.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
/// Configuration de connexion au backend PocketBase (LE MÊME que l'app magasin).
|
||||
///
|
||||
/// L'URL pointe vers l'instance PocketBase auto-hébergée. La session (token
|
||||
/// d'auth) est persistée localement via [SharedPreferences] pour rester
|
||||
/// connecté entre deux lancements de l'app.
|
||||
class PbConfig {
|
||||
PbConfig._();
|
||||
|
||||
static const String url = 'https://db.tailb756e1.ts.net';
|
||||
|
||||
static bool get estConfigure => !url.contains('VOTRE-URL');
|
||||
}
|
||||
|
||||
/// ID client OAuth « Web » du projet Google Cloud. Passé à google_sign_in comme
|
||||
/// `serverClientId` → l'ID token renvoyé a cette audience, que le hook serveur
|
||||
/// PocketBase (`/api/google-native-auth`) vérifie.
|
||||
const String googleWebClientId =
|
||||
'831733439319-45cergb7cf8r728fja4m0kcvu2r7fbj9.apps.googleusercontent.com';
|
||||
|
||||
/// Client PocketBase global (initialisé une fois via [initPocketBase]).
|
||||
late final PocketBase pb;
|
||||
|
||||
/// Initialise le client PocketBase avec une auth store persistée sur disque.
|
||||
/// À appeler au démarrage, avant `runApp`.
|
||||
Future<void> initPocketBase() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final store = AsyncAuthStore(
|
||||
save: (String data) async => prefs.setString('pb_auth', data),
|
||||
clear: () async => prefs.remove('pb_auth'),
|
||||
initial: prefs.getString('pb_auth'),
|
||||
);
|
||||
pb = PocketBase(PbConfig.url, authStore: store);
|
||||
}
|
||||
|
||||
/// Extrait un message lisible d'une erreur PocketBase (sinon [parDefaut]).
|
||||
String messageErreurPb(ClientException e, String parDefaut) {
|
||||
final data = e.response['message'];
|
||||
if (data is String && data.trim().isNotEmpty) return data;
|
||||
return parDefaut;
|
||||
}
|
||||
Reference in New Issue
Block a user