gioui-plugins / gio-plugins

Gio-Plugins offers new plugins to extend and enhance your Gio app. Inspired by flutter/plugins repository,
Other
56 stars 6 forks source link

Sign-In Third Party/OAuth #18

Closed inkeliz closed 3 months ago

inkeliz commented 1 year ago

Why that plugin should be added? For UX perspective the friction of Sign-In/Sign-Up is high. Instead of sign-up pages, it's good to offer users way to login using third-party services, such as Facebook, Apple, Google, Twitter.

What features this plugin should have and how it should work? The plugin should provide way to login with third-party credentials, safely and reliable.

What alternatives you've considered? Using webviewer/hyperlink plugin might work for some services.

Is this plugin implementable on all OSes (Android, iOS, macOS, WASM, Windows...)? Yes.

Did you known any particular limitation for specific OS? No.

gedw99 commented 1 year ago

I am using this: https://github.com/pocketbase/pocketbase/blob/master/tools/auth/auth.go

inkeliz commented 1 year ago

That is for server-side, right? What I'm talking about is on "client-side", responsible to show something like that: https://developers.google.com/identity/sign-in/android/sign-in-identity (on Android), and equivalent for Facebook (using Facebook SDK) and Apple. Of course, it also requires fallback for non-mobile apps, usually opening the oauth page on the browser.

gedw99 commented 1 year ago

Yep it’s server side .

the client side is also in the project. It’s js.

It’s at least a reference

gedw99 commented 1 year ago

But yeah I now see your point. Very different

inkeliz commented 1 year ago

The issue on Android is that it requires "Google Play Services", which is not part of Android itself. It plagues everything with many dependencies:

Image

To make it worse, gogio can't handle conflict between versions of the same jar. So, implement https://github.com/gioui-plugins/gio-plugins/issues/53 will cause issues. Also, many of those packages requires additional assets and merge AndroidManifest.

Since Android tools are terrible, the Manifest Merger is not a oficial CLI. And, that only merge manifest, not other assets values. So, it's not easy to integrate into gogio.

So, I think it's time to move to Maven/Grandle and abandon gogio, or create some gogio2 that is built from the ground up to understand maven/grandle and use them to compile. But, I don't have time to do it now.


Currently, I will implement Google SignIn in the same way of Apple SignIn, --using the Chrome Custom Tabs--, using Hyperilnk and rely on custom-scheme.

inkeliz commented 1 year ago

I manage to patch gogio to work with AAR. :D

gedw99 commented 1 year ago

I manage to patch gogio to work with AAR. :D

Well done. if you have a gio fork to try it out on let me know and I will have a play.

hang in thee on the gio tip or / Marge. It’s hard to get things in the correct structure for this advanced stuff to get merged. You’re doing well !!