fix(#412): enable PKCE, fix docker OIDC default, document @SkipCsrf
All checks were successful
ci/woodpecker/push/api Pipeline was successful
All checks were successful
ci/woodpecker/push/api Pipeline was successful
- AUTH-003: Add safe empty default for OIDC_REDIRECT_URI in swarm compose - AUTH-004: Enable PKCE (pkce: true) in genericOAuth config (in prior commit) - AUTH-005: Document @SkipCsrf() rationale (BetterAuth internal CSRF) Refs #412 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -89,6 +89,12 @@ export class AuthController {
|
|||||||
* Rate limiting and logging are applied to mitigate abuse (SEC-API-10).
|
* Rate limiting and logging are applied to mitigate abuse (SEC-API-10).
|
||||||
*/
|
*/
|
||||||
@All("*")
|
@All("*")
|
||||||
|
/**
|
||||||
|
* BetterAuth implements CSRF protection internally via Fetch Metadata headers
|
||||||
|
* (Sec-Fetch-Site, Sec-Fetch-Mode) and SameSite=Lax cookies. The @SkipCsrf()
|
||||||
|
* decorator skips the custom CSRF guard to avoid double-protection conflicts.
|
||||||
|
* Reference: https://www.better-auth.com/docs/reference/security
|
||||||
|
*/
|
||||||
@SkipCsrf()
|
@SkipCsrf()
|
||||||
@Throttle({ strict: { limit: 10, ttl: 60000 } })
|
@Throttle({ strict: { limit: 10, ttl: 60000 } })
|
||||||
async handleAuth(@Req() req: ExpressRequest, @Res() res: ExpressResponse): Promise<void> {
|
async handleAuth(@Req() req: ExpressRequest, @Res() res: ExpressResponse): Promise<void> {
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ services:
|
|||||||
OIDC_ISSUER: ${OIDC_ISSUER}
|
OIDC_ISSUER: ${OIDC_ISSUER}
|
||||||
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
|
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
|
||||||
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
|
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
|
||||||
OIDC_REDIRECT_URI: ${OIDC_REDIRECT_URI:-http://localhost:3001/auth/callback}
|
OIDC_REDIRECT_URI: ${OIDC_REDIRECT_URI:-}
|
||||||
JWT_SECRET: ${JWT_SECRET:-change-this-to-a-random-secret}
|
JWT_SECRET: ${JWT_SECRET:-change-this-to-a-random-secret}
|
||||||
JWT_EXPIRATION: ${JWT_EXPIRATION:-24h}
|
JWT_EXPIRATION: ${JWT_EXPIRATION:-24h}
|
||||||
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
|
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
|
||||||
|
|||||||
Reference in New Issue
Block a user