feat: Social login with Steam / Open ID 2.0 #3762
Draft
+958
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request aims at adding support for social login for Steam and other Open ID 2.0-based providers.
Related issue(s)
This PR is related to #3631
Checklist
introduces a new feature.
contributing code guidelines.
vulnerability. If this pull request addresses a security vulnerability, I
confirm that I got the approval (please contact
[email protected]) from the maintainers to push
the changes.
works.
Further Comments
I have never worked with Go before, so I got into the basics. Please be gentle if I did something that is unusual for Go projects. :) I've looked at the implementation of OIDC to get going, thus most of the code should look somewhat familiar.
Like OIDC providers, OID2 providers need to be configured in the Kratos configuration. For Steam this might look like the following:
Current State of the PR
The registration flow is implemented until the point that a redirect to the provider is needed. Providers are configurable. The login flow exists as a mostly empty shell.
I've been struggling with testing in Go until now, support with that would be much appreciated..
The following things still need to be done:
Intermediate feedback would be much appreciated. 🙏