egregors / passkey

🔑 Go library for implementing WebAuthn services 🗝️
MIT License
14 stars 3 forks source link

Native ( Desktop and Mobile ) #11

Open gedw99 opened 3 months ago

gedw99 commented 3 months ago

I am wondering about using this for non web gui with the 3 golang gui projects / frameworks of like GIO, Ebiten and Fyne.

docs


I think this might be the Api for Darwin : https://github.com/gravitational/teleport/blob/master/rfd/0054-passwordless-macos.md

https://github.com/gravitational/teleport/blob/master/lib/auth/touchid/api_darwin.go and that folder seems to be the implementation.

github.com/go-webauthn/webauthn is also used by it, just like this repo.


I think this might be the one for Windows: https://github.com/gravitational/teleport/blob/master/lib/auth/webauthnwin/zsyscall_windows.go

egregors commented 3 months ago

At first sight, it shouldn't cause any problems. The GUI part (with the js-client) isn't mandatory here. You may use any client implementation.

If we are talking about a non-HTTP API, to be honest, I haven't thought about it this way until now. But it sounds interesting, and it's a good reason to extend _examples.

Thank you for the references you provided! They look pretty useful. I'll check them out to understand how to use them in this project.

gedw99 commented 3 months ago

Hey, If you need any help or whatever just shout.

Passkeys being supported everywhere and being so much more secure, makes it a no brainer for Users and Devs.

There is another golang GUI framework that just reached stable ( or sorts), that I am using. https://github.com/cogentcore

They got listed on golang weekly too :) https://golangweekly.com/issues/517

I am so impressed with their approach and the way it works. Really outstanding. I think they might even be interested in adding passkeys actually for Web and Native, since it working on Web and Native ( mobile, Desktop ).

gedw99 commented 3 months ago

@egregors

I raised an issue at Cogent, and they said they will "consider" to use passkeys for their Web and Native if it implemented in this repo. So there seems to be interest :).

Fyne and Gio are the others could use it too. Making it work with GIO is just a matter of adding it to their x repo at https://github.com/gioui/gio-x.

Cogent is unique in that it allows reflection at runtime to change the running application without recompiling. It's using yaegi. Its a very interesting approach with new possibilities compared to the other golang gui's

here is the Cogent issue for reference: https://github.com/cogentcore/cogent/discussions/334#discussioncomment-10245290