feat(auth): Adds Twitch identity provider support#4642
feat(auth): Adds Twitch identity provider support#464289pleasure wants to merge 35 commits intoserverpod:mainfrom
Conversation
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
|
I have read the CLA Document and I hereby sign the CLA |
7b651e1 to
1709781
Compare
|
Still in progress, just wanted to save and push my work already :) |
...auth_idp/serverpod_auth_idp_server/lib/src/common/oauth2_pkce/oauth2_pkce_server_config.dart
Show resolved
Hide resolved
|
Thanks for this valuable contribution, @89pleasure! Since you had to base your work from #4546, the diff is carrying a lot of changes and will make the revision harder. We are still waiting for the docs, but I'll merge #4546 already so you can rebase from main! |
Thanks @marcelomendoncasoares ! Im on it. But I recognized that the merge into main has changes the PR does not have. Seems to be force pushed too. That makes a rebase on main pretty hard to distinguish the changes now. |
…laces in pubspec.yaml
…factor GitHub sign-in service
…rade `flutter_web_auth_2`
Co-authored-by: Marcelo Mendonça Soares <[email protected]>
This reverts commit 06dab83.
1bc35d2 to
6d4a586
Compare
You should do a rebase using the |
Thanks @marcelomendoncasoares, I am happy, finally to get my PR merged! The docs on its way. Needs your attention :) serverpod/serverpod_docs#402 |
I look into it, I already did a rebase, but for some reason the commits of the GitHub idp are still in here. I'll redo it with the --onto flag. @marcelomendoncasoares |
|
@89pleasure Now that we have merged the GitHub IDP with the changes you proposed, my suggestion will be for you to rebase your commits on latest main and open a new PR with a clean history. This will simplify the conflict resolution for you and also facilitate the revision a lot. What do you think? |
|
@marcelomendoncasoares Yes! That's great news. I was waiting for this. Also I'm currently very busy at work so I will take care of that on the weekend. |
This PR adds Twitch OAuth authentication support to the serverpod_auth module. It implements a complete Twitch identity provider (IDP) with PKCE (Proof Key for Code Exchange) flow for enhanced security across all platforms. This is possible to the great work of @vfiruz97
Key features:
Cross-platform support (iOS, Android, Web, macOS, Windows, Linux)
Customizable sign-in button widget with Twitch branding
Complete server-side token exchange, user authentication, and account management
Integration with existing Serverpod auth system
Comprehensive test coverage including integration tests
No new dependencies added
Pre-launch Checklist
///), and made sure that the documentation follows the same style as other Serverpod documentation. I checked spelling and grammar.If you need help, consider asking for advice on the discussion board.
Breaking changes
This is a new feature. I changed the
exchangeCodeForTokento a generic method to support a different response schemas. Twitch is using a response token approach similar to Apple which won't work the way it is implemented right now. Since im new to dart development this needs further testing.