Support PKCE flow for OAuth apps #15752
Replies: 13 comments 31 replies
|
Another related discussion: https://github.com/orgs/community/discussions/40077 And documentation issue: github/docs#22270 |
|
I would love see support for PKCE as well. It would make a huge difference for JAMStack websites. |
|
PR to clarify that PKCE is not supported github/docs#24965 |
|
GitHub now supports the Device Authorization Grant, which does not require a server. This is not an excuse to not support PKCE, since its usage is recommended (and sometimes required) starting with the upcoming OAuth 2.1 standard. |
|
Is PKCE missing only for OAuth Apps or is it missing for GitHub Apps as well? The docs here don't mention "pkce" nor "challenge": https://docs.github.com/en/apps/creating-github-apps/writing-code-for-a-github-app/building-a-login-with-github-button-with-a-github-app |
|
Is PKCE missing only for OAuth Apps or is it missing for GitHub Apps as well?
As far as I know, it's also missing from GitHub Apps.
|
|
I really would prefer if Github had PKCE. It greatly simplifies things for static web applications. |
|
Hey all, https://github.blog/changelog/2025-07-14-pkce-support-for-oauth-and-github-app-authentication/ |
|
Is it safe to keep client secret in the front end.. it won't be a "secret"
any more
…On Tue, 15 Jul, 2025, 8:10 pm Hirsch Singhal, ***@***.***> wrote:
We still have to add support for CORS on the token endpoint unfortunately.
We are working on it though.
For the client secret, yes, our implementation always requires the client
secret as we don't yet distinguish between public clients and confidential
clients. So at this time, native apps and SPA type apps need to include
their client secret in the redemption. I don't have an estimate for when we
can remove this requirement unfortunately.
—
Reply to this email directly, view it on GitHub
<#15752 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQNBZSV5HPH2K3CNTDECYBL3IUHGBAVCNFSM6AAAAABTOFAC3WVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGNZWGU3TGNQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
We are also Asking user to enter the token. Will wait for fully client side
authentication to be enabled
…On Tue, 15 Jul, 2025, 10:52 pm Kohei Yoshino, ***@***.***> wrote:
We cannot embed a client secret in our SPA or ask end-users to enter their
client secret. So we have to wait until the requirement is removed. We
could rather prompt users to enter their personal access token directly, as
discussed here:
- decaporg/decap-cms#663
<decaporg/decap-cms#663>
—
Reply to this email directly, view it on GitHub
<#15752 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQNBZSVDSIGGNJVDL7D4WWL3IU2DPAVCNFSM6AAAAABTOFAC3WVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTGNZWG42DGNQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
|
I am using Vouch which was already sending PKCE code_challenge_method S256 to Github with a correct 43 char length of code_challenge, yet I got the email saying my Github OAuth app was using PKCE incorrectly.. I set up a new Github OAuth app and it Just Worked despite me not changing anything other than the client ID and client secret in my Vouch config. (I also set the However, after it working the first time, I now get a 400 error with the Github side returning: This is weird, it was working ok on the older OAuth apps...? So I'm doubly confused why the old apps were apparently 'incorrect', and why the new app worked only once, despite me not having changed other parameters. I'm pretty sure Vouch does everything correctly, it's a solid OIDC sidecar for Nginx. I've filed an upstream issue at vouch/vouch-proxy#600 about it though. |
|
@hpsin It’s been six months since GitHub missed its Q4 2025 goal to release PKCE support for SPA. Any news about this? Our Sveltia CMS, the de facto successor to Netlify CMS mentioned in the OP, is becoming more popular. We estimate that it now has thousands of users worldwide. Sveltia CMS has supported PAT authentication since July 2025, but the number of installations of our own OAuth client, Sveltia CMS Authenticator, continues to increase due to the lack of PKCE support. We really hope the feature will be implemented soon. |
|
Is there any addition information on why #1153 was changed to paused? |
Uh oh!
There was an error while loading. Please reload this page.
GitHub let's you authorize apps using OAuth but the supported grants require a server, making it difficult for clientside apps.
This requires Jamstack git-backed CMS projects like NetlifyCMS manage an intermediary server separately: https://www.netlifycms.org/docs/github-backend/ (same with TinaCMS and my project Plenti).
The Implicit Grant type was not allowed because of security issues, but Proof Key for Code Exchange (PKCE) should allow clientside apps to operate securely.
GitLab already implements this in their OAuth 2.0 identity provider API: https://docs.gitlab.com/ee/api/oauth2.html#authorization-code-with-proof-key-for-code-exchange-pkce
Thank you!
All reactions