Noita-Together / noita-together

Play alone together
MIT License
44 stars 13 forks source link

Identity System Overhaul #167

Open Nicknakin opened 2 months ago

Nicknakin commented 2 months ago

Heya, this isn't meant to be merged quite yet, just want to get the PR out there while I have something that works. I'd love some feedback, I believe this addresses issue #43 in a round-about way.

The gist of the change is that all of the twitch specific code has been moved to /identity/twitch.ts and is now exposed by importing it in /identity/identity.ts which the rest of the application imports for any auth needs. It seems that the twitch integration was performing two primary tasks, acting as an identity server and allowing for fetching arbitrary user information by id, any oidc provider can be swapped in for the first, however getting arbitrary user information by subscriber id is unlikely to be supported by any given identity provider.

Forgejo is the identity provider I tested against locally for a generic oidc integration, I also threw my hat in at integrating a google identity provider and got it working, with the exception of arbitrary user polling.

Nicknakin commented 2 months ago

I'm noticing my editor seems to have automatically done a lot of style specific changes, is that a problem? I also ran linting afterwards, so none of it seems to be violating linting rules.

Nicknakin commented 2 months ago

Tested with a local copy of the whole stack and seems to work fine.