fixup(oidcAuth): generate state during auth call when PKCE is enabled (#46)

This commit is contained in:
vttran
2025-07-24 16:22:30 +07:00
committed by GitHub
parent 7b161a59c8
commit c6f8af36e9
3 changed files with 4 additions and 7 deletions
+1 -1
View File
@@ -59,7 +59,7 @@ You dont have to ever use `eject`. The curated feature set is suitable for sm
After compiling the project with npm (see previous section) simply run:
```
docker built -t linagora/twake-calendar-front .
docker build -t linagora/twake-calendar-front .
```
Then edit `.env.js` in order to match your configuration then run it with:
+1 -1
View File
@@ -1,6 +1,6 @@
var SSO_BASE_URL = "https://example.com";
var SSO_CLIENT_ID = "example";
var SSO_SCOPE = "openid name email";
var SSO_SCOPE = "openid profile email";
var SSO_REDIRECT_URI = "https://example.com/callback";
var SSO_RESPONSE_TYPE = "code";
var SSO_CODE_CHALLENGE_METHOD = "S256";
+2 -5
View File
@@ -22,17 +22,14 @@ export async function Auth() {
let code_verifier = client.randomPKCECodeVerifier();
let code_challenge = await client.calculatePKCECodeChallenge(code_verifier);
const openIdClientConfig = await getClientConfig();
let state = client.randomState();
let parameters: Record<string, string> = {
redirect_uri: clientConfig.redirect_uri,
scope: clientConfig.scope!,
code_challenge,
code_challenge_method: clientConfig.code_challenge_method,
state,
};
let state!: string;
if (!openIdClientConfig.serverMetadata().supportsPKCE()) {
state = client.randomState();
parameters.state = state;
}
let redirectTo = client.buildAuthorizationUrl(openIdClientConfig, parameters);
return { redirectTo, code_verifier, state };