Complete Telegram bot login from callback URL
All checks were successful
Build and deploy Flutter Web / build (push) Successful in 2m18s

This commit is contained in:
Ruslan Bakiev
2026-05-13 19:36:09 +07:00
parent 5b2cd4158c
commit a8b6aa6e02
5 changed files with 23 additions and 82 deletions

View File

@@ -4,18 +4,12 @@ String telegramLoginData() => '';
String mapflowSessionToken() => '';
String pendingTelegramLoginToken() => '';
String telegramLoginTokenFromUrl() => '';
void saveMapflowSessionToken(String token) {}
void clearMapflowSession() {}
void savePendingTelegramLoginToken(String token) {}
void clearPendingTelegramLoginToken() {}
void openExternalUrl(String url) {}
void reloadApp() {}

View File

@@ -4,7 +4,6 @@ import 'package:web/web.dart' as web;
const telegramLoginStorageKey = 'mapflow.telegramLoginData';
const mapflowSessionStorageKey = 'mapflow.sessionToken';
const pendingTelegramLoginStorageKey = 'mapflow.pendingTelegramLoginToken';
@JS('window.Telegram.WebApp.initData')
external JSString? get _telegramInitData;
@@ -20,9 +19,6 @@ String telegramLoginData() =>
String mapflowSessionToken() =>
web.window.localStorage.getItem(mapflowSessionStorageKey) ?? '';
String pendingTelegramLoginToken() =>
web.window.localStorage.getItem(pendingTelegramLoginStorageKey) ?? '';
String telegramLoginTokenFromUrl() {
final uri = Uri.parse(web.window.location.href);
return uri.queryParameters['telegram_login'] ?? '';
@@ -40,19 +36,10 @@ void saveMapflowSessionToken(String token) {
void clearMapflowSession() {
web.window.localStorage.removeItem(mapflowSessionStorageKey);
web.window.localStorage.removeItem(telegramLoginStorageKey);
clearPendingTelegramLoginToken();
}
void savePendingTelegramLoginToken(String token) {
web.window.localStorage.setItem(pendingTelegramLoginStorageKey, token);
}
void clearPendingTelegramLoginToken() {
web.window.localStorage.removeItem(pendingTelegramLoginStorageKey);
}
void openExternalUrl(String url) {
web.window.open(url, '_blank', 'noopener,noreferrer');
web.window.location.assign(url);
}
void reloadApp() {