Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
ShootingStarDragons
cc99459701 feat: change to flutterwebauth2 2023-03-19 07:51:59 +01:00
11 changed files with 52 additions and 21 deletions

View file

@ -93,7 +93,8 @@
</intent-filter>
</activity>
<activity android:name="com.linusu.flutter_web_auth.CallbackActivity"
<activity
android:name="com.linusu.flutter_web_auth_2.CallbackActivity"
android:exported="true">
<intent-filter android:label="flutter_web_auth">
<action android:name="android.intent.action.VIEW" />

View file

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:flutter_web_auth/flutter_web_auth.dart';
import 'package:flutter_web_auth_2/flutter_web_auth_2.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart';
import 'package:image_picker/image_picker.dart';
import 'package:matrix/matrix.dart';
@ -103,11 +103,10 @@ class ConnectPageController extends State<ConnectPage> {
.any((flow) => flow.type == flowType) ??
false;
bool get supportsSso =>
(PlatformInfos.isMobile ||
PlatformInfos.isWeb ||
PlatformInfos.isMacOS) &&
_supportsFlow('m.login.sso');
bool get supportsSso => _supportsFlow('m.login.sso');
bool isDefaultPlatform =
(PlatformInfos.isMobile || PlatformInfos.isWeb || PlatformInfos.isMacOS);
bool get supportsLogin => _supportsFlow('m.login.password');
@ -133,11 +132,15 @@ class ConnectPageController extends State<ConnectPage> {
void ssoLoginAction(String id) async {
final redirectUrl = kIsWeb
? '${html.window.origin!}/web/auth.html'
: '${AppConfig.appOpenUrlScheme.toLowerCase()}://login';
: isDefaultPlatform
? '${AppConfig.appOpenUrlScheme.toLowerCase()}://login'
: 'http://localhost:3001//login';
final url =
'${Matrix.of(context).getLoginClient().homeserver?.toString()}/_matrix/client/r0/login/sso/redirect/${Uri.encodeComponent(id)}?redirectUrl=${Uri.encodeQueryComponent(redirectUrl)}';
final urlScheme = Uri.parse(redirectUrl).scheme;
final result = await FlutterWebAuth.authenticate(
final urlScheme = isDefaultPlatform
? Uri.parse(redirectUrl).scheme
: "http://localhost:3001";
final result = await FlutterWebAuth2.authenticate(
url: url,
callbackUrlScheme: urlScheme,
);

View file

@ -14,6 +14,7 @@
#include <handy_window/handy_window_plugin.h>
#include <record_linux/record_linux_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
#include <window_to_front/window_to_front_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) desktop_drop_registrar =
@ -40,4 +41,7 @@ void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
g_autoptr(FlPluginRegistrar) window_to_front_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "WindowToFrontPlugin");
window_to_front_plugin_register_with_registrar(window_to_front_registrar);
}

View file

@ -11,6 +11,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
handy_window
record_linux
url_launcher_linux
window_to_front
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST

View file

@ -15,7 +15,7 @@ import emoji_picker_flutter
import flutter_app_badger
import flutter_local_notifications
import flutter_secure_storage_macos
import flutter_web_auth
import flutter_web_auth_2
import flutter_webrtc
import geolocator_apple
import just_audio
@ -29,6 +29,7 @@ import sqflite
import url_launcher_macos
import video_compress
import wakelock_macos
import window_to_front
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
@ -41,7 +42,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FlutterAppBadgerPlugin.register(with: registry.registrar(forPlugin: "FlutterAppBadgerPlugin"))
FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin"))
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
FlutterWebAuthPlugin.register(with: registry.registrar(forPlugin: "FlutterWebAuthPlugin"))
FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin"))
FlutterWebRTCPlugin.register(with: registry.registrar(forPlugin: "FlutterWebRTCPlugin"))
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
@ -55,4 +56,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
VideoCompressPlugin.register(with: registry.registrar(forPlugin: "VideoCompressPlugin"))
WakelockMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockMacosPlugin"))
WindowToFrontPlugin.register(with: registry.registrar(forPlugin: "WindowToFrontPlugin"))
}

View file

@ -270,7 +270,7 @@
"${BUILT_PRODUCTS_DIR}/emoji_picker_flutter/emoji_picker_flutter.framework",
"${BUILT_PRODUCTS_DIR}/flutter_local_notifications/flutter_local_notifications.framework",
"${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework",
"${BUILT_PRODUCTS_DIR}/flutter_web_auth/flutter_web_auth.framework",
"${BUILT_PRODUCTS_DIR}/flutter_web_auth_2/flutter_web_auth_2.framework",
"${BUILT_PRODUCTS_DIR}/flutter_webrtc/flutter_webrtc.framework",
"${BUILT_PRODUCTS_DIR}/geolocator_apple/geolocator_apple.framework",
"${BUILT_PRODUCTS_DIR}/just_audio/just_audio.framework",
@ -297,7 +297,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/emoji_picker_flutter.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_local_notifications.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage_macos.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_web_auth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_web_auth_2.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_webrtc.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/geolocator_apple.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/just_audio.framework",

View file

@ -694,14 +694,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.3.2"
flutter_web_auth:
flutter_web_auth_2:
dependency: "direct main"
description:
name: flutter_web_auth
sha256: a69fa8f43b9e4d86ac72176bf747b735e7b977dd7cf215076d95b87cb05affdd
name: flutter_web_auth_2
sha256: eab1cc4ba7b2c517a7ea1cf0d165f2ae22403f4a725ea681fc238c32abd0ab87
url: "https://pub.dev"
source: hosted
version: "0.5.0"
version: "2.1.1"
flutter_web_auth_2_platform_interface:
dependency: transitive
description:
name: flutter_web_auth_2_platform_interface
sha256: dd934033564cacff127b4776798dc2b27b2f2ebfd6b669746455b91c3611cfde
url: "https://pub.dev"
source: hosted
version: "2.1.0"
flutter_web_plugins:
dependency: transitive
description: flutter
@ -2132,6 +2140,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.3"
window_to_front:
dependency: transitive
description:
name: window_to_front
sha256: "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee"
url: "https://pub.dev"
source: hosted
version: "0.0.3"
wkt_parser:
dependency: transitive
description:

View file

@ -43,7 +43,7 @@ dependencies:
flutter_ringtone_player: ^3.1.1
flutter_secure_storage: ^7.0.1
flutter_typeahead: ^4.3.2
flutter_web_auth: ^0.5.0
flutter_web_auth_2: ^2.1.1
flutter_webrtc: ^0.9.24
future_loading_dialog: ^0.2.3
geolocator: ^7.6.2

View file

@ -7,7 +7,7 @@
close the window.
<script>
window.opener.postMessage({
'flutter-web-auth': window.location.href
'flutter-web-auth-2': window.location.href
}, window.location.origin);
window.close();
</script>

View file

@ -16,6 +16,7 @@
#include <record_windows/record_windows_plugin_c_api.h>
#include <share_plus/share_plus_windows_plugin_c_api.h>
#include <url_launcher_windows/url_launcher_windows.h>
#include <window_to_front/window_to_front_plugin.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
ConnectivityPlusWindowsPluginRegisterWithRegistrar(
@ -38,4 +39,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
WindowToFrontPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("WindowToFrontPlugin"));
}

View file

@ -13,6 +13,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
record_windows
share_plus
url_launcher_windows
window_to_front
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST