supabase / supabase-flutter

Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.
https://supabase.com/
MIT License
703 stars 167 forks source link

Provider auth on all platforms #261

Closed Sesa1988 closed 1 year ago

Sesa1988 commented 1 year ago

I updated to one of the dev versions and made it work again, it was straight forward (except my other issue on windows: https://github.com/supabase-community/supabase-flutter/issues/239). After the update to 1.0.1 no platform works except on my live version because Im still using the dart implementation and package there. Looks like my Google Oauth configuration is correct.

I checked multiple official documentations at multiple places and I can't find the issue...

Screenshot 2022-10-28 at 11 55 40
await Supabase.initialize(
    url: EnvironmentHelper.supabaseUrl,
    anonKey: EnvironmentHelper.supabaseKey,
    authCallbackUrlHostname: 'callback',
    localStorage: const CustomHiveLocalStorage(),
  );
<intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="com.sesa.cryptowulf.dev" android:host="callback" />
</intent-filter>
@override
  Future<bool> signInWithGoogle() async {
    return await _supabaseClientService.get().auth.signInWithOAuth(
          Provider.google,
          redirectTo:
              'com.sesa.cryptowulf.${EnvironmentHelper.envName}://callback',
        );
  }
Screenshot 2022-10-28 at 12 02 20

It looks like everything is fine If I watch the auth logs but the redirect back does not work. The browser wants to Redirect to localhost:3000.

dshukertjr commented 1 year ago

@Sesa1988 So that issue is that with the most recent version of supabase-flutter, specifying redirectTo does not change the redirect URL, correct?

except on my live version because Im still using the dart implementation and package there

What version of supabase-dart are you using for this one?

Sesa1988 commented 1 year ago

@Sesa1988 So that issue is that with the most recent version of supabase-flutter, specifying redirectTo does not change the redirect URL, correct?

except on my live version because Im still using the dart implementation and package there

What version of supabase-dart are you using for this one?

Its looks like it, the browser should redirect to my specified URL and not localhost or?

Yes its on the latest one and I was using the latest dart package for supabase.

dshukertjr commented 1 year ago

@Sesa1988 Within the project that is not working properly, could you open pubspec.lock and see what version of gotrue is being used?

dshukertjr commented 1 year ago

There was an issue with gotrue v1.0.1 with redirect. If the version you are using is not v1.0.2, could you delete your pubspec.lock file and rerun pub get?

Vinzent03 commented 1 year ago

(Or to not update other packages, run dart pub upgrade gotrue. This should do the trick as well, but verify in pubspec.lock as Tyler said.)

Sesa1988 commented 1 year ago

Okay thanks I will try that and report thr update here.

First I thought its maybe because of my forked repos for the Windows implementation because they use old dependencies but that should have no relation for this probably. I will update the other issue with my new findings.

dshukertjr commented 1 year ago

@Vinzent03 Thanks for sharing that trick! I keep forgetting that one 😂

@Sesa1988 Thanks for bearing with us!

Sesa1988 commented 1 year ago

It looks like Im already using the 1.0.2 version.

gotrue:
    dependency: transitive
    description:
      name: gotrue
      url: "https://pub.dartlang.org"
    source: hosted
    version: "1.0.2"
lockfile ``` # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: animated_text_kit: dependency: "direct main" description: name: animated_text_kit url: "https://pub.dartlang.org" source: hosted version: "4.2.2" ansicolor: dependency: transitive description: name: ansicolor url: "https://pub.dartlang.org" source: hosted version: "2.0.1" app_links: dependency: transitive description: name: app_links url: "https://pub.dartlang.org" source: hosted version: "3.3.0" app_links_macos: dependency: transitive description: name: app_links_macos url: "https://pub.dartlang.org" source: hosted version: "1.0.0" app_links_platform_interface: dependency: transitive description: name: app_links_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.2" app_links_web: dependency: transitive description: name: app_links_web url: "https://pub.dartlang.org" source: hosted version: "1.0.0" app_links_windows: dependency: transitive description: name: app_links_windows url: "https://pub.dartlang.org" source: hosted version: "1.0.0" archive: dependency: transitive description: name: archive url: "https://pub.dartlang.org" source: hosted version: "3.3.0" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted version: "2.3.1" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted version: "2.9.0" axis_layout: dependency: transitive description: name: axis_layout url: "https://pub.dartlang.org" source: hosted version: "1.0.0" bloc: dependency: transitive description: name: bloc url: "https://pub.dartlang.org" source: hosted version: "8.1.0" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted version: "2.1.0" cached_network_image: dependency: "direct main" description: name: cached_network_image url: "https://pub.dartlang.org" source: hosted version: "3.2.1" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web url: "https://pub.dartlang.org" source: hosted version: "1.0.1" characters: dependency: transitive description: name: characters url: "https://pub.dartlang.org" source: hosted version: "1.2.1" chart_sparkline: dependency: "direct main" description: name: chart_sparkline url: "https://pub.dartlang.org" source: hosted version: "1.0.11" clipboard: dependency: "direct main" description: name: clipboard url: "https://pub.dartlang.org" source: hosted version: "0.1.3" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted version: "1.1.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted version: "1.16.0" crypto: dependency: transitive description: name: crypto url: "https://pub.dartlang.org" source: hosted version: "3.0.2" csslib: dependency: transitive description: name: csslib url: "https://pub.dartlang.org" source: hosted version: "0.17.1" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted version: "1.0.5" dots_indicator: dependency: transitive description: name: dots_indicator url: "https://pub.dartlang.org" source: hosted version: "2.1.0" easy_table: dependency: "direct main" description: name: easy_table url: "https://pub.dartlang.org" source: hosted version: "2.0.1" equatable: dependency: "direct main" description: name: equatable url: "https://pub.dartlang.org" source: hosted version: "2.0.5" expandable: dependency: "direct main" description: name: expandable url: "https://pub.dartlang.org" source: hosted version: "5.0.1" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted version: "1.3.1" ffi: dependency: transitive description: name: ffi url: "https://pub.dartlang.org" source: hosted version: "2.0.1" file: dependency: transitive description: name: file url: "https://pub.dartlang.org" source: hosted version: "6.1.2" firebase_core: dependency: "direct main" description: name: firebase_core url: "https://pub.dartlang.org" source: hosted version: "1.21.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface url: "https://pub.dartlang.org" source: hosted version: "4.5.0" firebase_core_web: dependency: transitive description: name: firebase_core_web url: "https://pub.dartlang.org" source: hosted version: "1.7.1" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics url: "https://pub.dartlang.org" source: hosted version: "2.8.8" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface url: "https://pub.dartlang.org" source: hosted version: "3.2.14" fl_chart: dependency: "direct main" description: name: fl_chart url: "https://pub.dartlang.org" source: hosted version: "0.36.4" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" flutter_bloc: dependency: "direct main" description: name: flutter_bloc url: "https://pub.dartlang.org" source: hosted version: "8.1.1" flutter_blurhash: dependency: transitive description: name: flutter_blurhash url: "https://pub.dartlang.org" source: hosted version: "0.7.0" flutter_cache_manager: dependency: "direct main" description: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted version: "3.3.0" flutter_displaymode: dependency: "direct main" description: name: flutter_displaymode url: "https://pub.dartlang.org" source: hosted version: "0.4.0" flutter_html: dependency: "direct main" description: name: flutter_html url: "https://pub.dartlang.org" source: hosted version: "3.0.0-alpha.5" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted version: "0.9.3" flutter_lints: dependency: "direct dev" description: name: flutter_lints url: "https://pub.dartlang.org" source: hosted version: "1.0.4" flutter_localizations: dependency: "direct main" description: flutter source: sdk version: "0.0.0" flutter_native_splash: dependency: "direct dev" description: name: flutter_native_splash url: "https://pub.dartlang.org" source: hosted version: "2.2.0+1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle url: "https://pub.dartlang.org" source: hosted version: "2.0.6" flutter_signin_button: dependency: "direct main" description: name: flutter_signin_button url: "https://pub.dartlang.org" source: hosted version: "2.0.0" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" flutter_web_plugins: dependency: transitive description: flutter source: sdk version: "0.0.0" font_awesome_flutter: dependency: transitive description: name: font_awesome_flutter url: "https://pub.dartlang.org" source: hosted version: "9.2.0" freezed_annotation: dependency: transitive description: name: freezed_annotation url: "https://pub.dartlang.org" source: hosted version: "1.1.0" functions_client: dependency: transitive description: name: functions_client url: "https://pub.dartlang.org" source: hosted version: "1.0.0" google_fonts: dependency: "direct main" description: name: google_fonts url: "https://pub.dartlang.org" source: hosted version: "3.0.1" google_mobile_ads: dependency: "direct main" description: name: google_mobile_ads url: "https://pub.dartlang.org" source: hosted version: "2.0.0" gotrue: dependency: transitive description: name: gotrue url: "https://pub.dartlang.org" source: hosted version: "1.0.2" hive: dependency: transitive description: name: hive url: "https://pub.dartlang.org" source: hosted version: "2.2.3" hive_flutter: dependency: transitive description: name: hive_flutter url: "https://pub.dartlang.org" source: hosted version: "1.1.0" html: dependency: transitive description: name: html url: "https://pub.dartlang.org" source: hosted version: "0.15.0" http: dependency: "direct main" description: name: http url: "https://pub.dartlang.org" source: hosted version: "0.13.4" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted version: "4.0.1" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted version: "3.1.3" intl: dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" source: hosted version: "0.17.0" introduction_screen: dependency: "direct main" description: name: introduction_screen url: "https://pub.dartlang.org" source: hosted version: "3.0.2" invert_colors: dependency: "direct main" description: name: invert_colors url: "https://pub.dartlang.org" source: hosted version: "0.0.4" js: dependency: transitive description: name: js url: "https://pub.dartlang.org" source: hosted version: "0.6.4" json_annotation: dependency: transitive description: name: json_annotation url: "https://pub.dartlang.org" source: hosted version: "4.5.0" jwt_decode: dependency: transitive description: name: jwt_decode url: "https://pub.dartlang.org" source: hosted version: "0.3.1" lint: dependency: transitive description: name: lint url: "https://pub.dartlang.org" source: hosted version: "1.8.2" lints: dependency: transitive description: name: lints url: "https://pub.dartlang.org" source: hosted version: "1.0.1" local_auth: dependency: "direct main" description: name: local_auth url: "https://pub.dartlang.org" source: hosted version: "2.1.1" local_auth_android: dependency: transitive description: name: local_auth_android url: "https://pub.dartlang.org" source: hosted version: "1.0.4" local_auth_ios: dependency: transitive description: name: local_auth_ios url: "https://pub.dartlang.org" source: hosted version: "1.0.6" local_auth_platform_interface: dependency: transitive description: name: local_auth_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.3" local_auth_windows: dependency: transitive description: name: local_auth_windows url: "https://pub.dartlang.org" source: hosted version: "1.0.0" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted version: "0.12.12" material_color_utilities: dependency: transitive description: name: material_color_utilities url: "https://pub.dartlang.org" source: hosted version: "0.1.5" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted version: "1.8.0" mime: dependency: transitive description: name: mime url: "https://pub.dartlang.org" source: hosted version: "1.0.2" msix: dependency: "direct dev" description: name: msix url: "https://pub.dartlang.org" source: hosted version: "2.8.18" multi_instance_handler: dependency: "direct main" description: path: "." ref: main resolved-ref: "5fed56c4f23791cda848b1e15c0e1845b416d936" url: "https://github.com/Sesa1988/flutter_multi_instance_handler_windows_fix.git" source: git version: "1.0.0" nested: dependency: transitive description: name: nested url: "https://pub.dartlang.org" source: hosted version: "1.0.0" numerus: dependency: transitive description: name: numerus url: "https://pub.dartlang.org" source: hosted version: "1.1.1" octo_image: dependency: transitive description: name: octo_image url: "https://pub.dartlang.org" source: hosted version: "1.0.2" package_config: dependency: transitive description: name: package_config url: "https://pub.dartlang.org" source: hosted version: "2.0.2" package_info_plus: dependency: "direct main" description: name: package_info_plus url: "https://pub.dartlang.org" source: hosted version: "1.4.3+1" package_info_plus_linux: dependency: transitive description: name: package_info_plus_linux url: "https://pub.dartlang.org" source: hosted version: "1.0.5" package_info_plus_macos: dependency: transitive description: name: package_info_plus_macos url: "https://pub.dartlang.org" source: hosted version: "1.3.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.2" package_info_plus_web: dependency: transitive description: name: package_info_plus_web url: "https://pub.dartlang.org" source: hosted version: "1.0.6" package_info_plus_windows: dependency: transitive description: name: package_info_plus_windows url: "https://pub.dartlang.org" source: hosted version: "2.1.0" palette_generator: dependency: "direct main" description: name: palette_generator url: "https://pub.dartlang.org" source: hosted version: "0.3.3+1" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted version: "1.8.2" path_provider: dependency: transitive description: name: path_provider url: "https://pub.dartlang.org" source: hosted version: "2.0.10" path_provider_android: dependency: transitive description: name: path_provider_android url: "https://pub.dartlang.org" source: hosted version: "2.0.14" path_provider_ios: dependency: transitive description: name: path_provider_ios url: "https://pub.dartlang.org" source: hosted version: "2.0.9" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted version: "2.1.7" path_provider_macos: dependency: transitive description: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.0.4" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted version: "2.1.3" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted version: "1.11.1" petitparser: dependency: transitive description: name: petitparser url: "https://pub.dartlang.org" source: hosted version: "5.0.0" platform: dependency: transitive description: name: platform url: "https://pub.dartlang.org" source: hosted version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.1.2" postgrest: dependency: transitive description: name: postgrest url: "https://pub.dartlang.org" source: hosted version: "1.0.0" process: dependency: transitive description: name: process url: "https://pub.dartlang.org" source: hosted version: "4.2.4" provider: dependency: transitive description: name: provider url: "https://pub.dartlang.org" source: hosted version: "6.0.3" purchases_flutter: dependency: "direct main" description: name: purchases_flutter url: "https://pub.dartlang.org" source: hosted version: "3.10.0" realtime_client: dependency: transitive description: name: realtime_client url: "https://pub.dartlang.org" source: hosted version: "1.0.0" retry: dependency: "direct main" description: name: retry url: "https://pub.dartlang.org" source: hosted version: "3.1.0" rxdart: dependency: transitive description: name: rxdart url: "https://pub.dartlang.org" source: hosted version: "0.27.3" screen_retriever: dependency: transitive description: name: screen_retriever url: "https://pub.dartlang.org" source: hosted version: "0.1.2" shared_preferences: dependency: "direct main" description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted version: "2.0.15" shared_preferences_android: dependency: transitive description: name: shared_preferences_android url: "https://pub.dartlang.org" source: hosted version: "2.0.12" shared_preferences_ios: dependency: transitive description: name: shared_preferences_ios url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted version: "2.0.4" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.0.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted version: "2.1.1" shimmer: dependency: "direct main" description: name: shimmer url: "https://pub.dartlang.org" source: hosted version: "2.0.0" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" source_span: dependency: transitive description: name: source_span url: "https://pub.dartlang.org" source: hosted version: "1.9.0" sqflite: dependency: transitive description: name: sqflite url: "https://pub.dartlang.org" source: hosted version: "2.0.2+1" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted version: "2.2.1+1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted version: "1.10.0" storage_client: dependency: transitive description: name: storage_client url: "https://pub.dartlang.org" source: hosted version: "1.0.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted version: "1.1.1" supabase: dependency: transitive description: name: supabase url: "https://pub.dartlang.org" source: hosted version: "1.0.1" supabase_flutter: dependency: "direct main" description: name: supabase_flutter url: "https://pub.dartlang.org" source: hosted version: "1.0.1" synchronized: dependency: transitive description: name: synchronized url: "https://pub.dartlang.org" source: hosted version: "3.0.0+2" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted version: "1.2.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted version: "0.4.12" timelines: dependency: "direct main" description: name: timelines url: "https://pub.dartlang.org" source: hosted version: "0.1.0" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted version: "1.3.1" universal_io: dependency: "direct main" description: name: universal_io url: "https://pub.dartlang.org" source: hosted version: "2.0.4" url_launcher: dependency: "direct main" description: name: url_launcher url: "https://pub.dartlang.org" source: hosted version: "6.1.5" url_launcher_android: dependency: transitive description: name: url_launcher_android url: "https://pub.dartlang.org" source: hosted version: "6.0.17" url_launcher_ios: dependency: transitive description: name: url_launcher_ios url: "https://pub.dartlang.org" source: hosted version: "6.0.17" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted version: "3.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted version: "3.0.1" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.1.0" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted version: "2.0.11" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted version: "3.0.1" url_protocol: dependency: "direct main" description: path: "." ref: main resolved-ref: ffbf0657f3425c93153fa762fe15b79cff14dbd8 url: "https://github.com/Sesa1988/flutter_url_protocol.git" source: git version: "1.0.0" uuid: dependency: transitive description: name: uuid url: "https://pub.dartlang.org" source: hosted version: "3.0.6" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted version: "2.1.2" web_socket_channel: dependency: transitive description: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted version: "2.2.0" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted version: "3.0.1" window_manager: dependency: "direct main" description: name: window_manager url: "https://pub.dartlang.org" source: hosted version: "0.2.5" xdg_directories: dependency: transitive description: name: xdg_directories url: "https://pub.dartlang.org" source: hosted version: "0.2.0+1" xml: dependency: transitive description: name: xml url: "https://pub.dartlang.org" source: hosted version: "5.4.1" xml2json: dependency: "direct main" description: name: xml2json url: "https://pub.dartlang.org" source: hosted version: "5.3.2" yaml: dependency: transitive description: name: yaml url: "https://pub.dartlang.org" source: hosted version: "3.1.1" sdks: dart: ">=2.17.0 <3.0.0" flutter: ">=3.0.0" ```
dshukertjr commented 1 year ago

@Sesa1988 So sorry there. Found a bug in the code. Fixing it right now!

Sesa1988 commented 1 year ago

@Sesa1988 So sorry there. Found a bug in the code. Fixing it right now!

Thanks a lot! :)

dshukertjr commented 1 year ago

@Sesa1988 Redirect issue should fixed now!

Sesa1988 commented 1 year ago

@Sesa1988 Redirect issue should fixed now!

I tested google auth and it works now on Android, iOS, and macOS.

Just windows is now left (https://github.com/supabase-community/supabase-flutter/issues/239) but this issue is solved :)