gio-plugins icon indicating copy to clipboard operation
gio-plugins copied to clipboard

Sign-In Third Party/OAuth

Open inkeliz opened this issue 3 years ago • 7 comments

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.

inkeliz avatar Dec 19 '22 06:12 inkeliz

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

gedw99 avatar Dec 20 '22 12:12 gedw99

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.

inkeliz avatar Dec 20 '22 15:12 inkeliz

Yep it’s server side .

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

It’s at least a reference

gedw99 avatar Dec 20 '22 15:12 gedw99

But yeah I now see your point. Very different

gedw99 avatar Dec 20 '22 15:12 gedw99

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 avatar Jul 31 '23 15:07 inkeliz

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

inkeliz avatar Jul 31 '23 21:07 inkeliz

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 !!

gedw99 avatar Aug 20 '23 18:08 gedw99