From 65418948ab4e977102dabe6373246890a337e5e9 Mon Sep 17 00:00:00 2001 From: Aaron Ware Date: Sun, 21 Apr 2024 19:08:03 -0400 Subject: [PATCH] feat(oauth-providers): Allow passing state in google oath middleware (#454) * improve(#453): Allow for state to be passed to AuthFlow * fix(#453): No need to cast as string * chore(#453): Create changeset Closes #453 * fix(#453): Needed to take CSRF into account --- .changeset/green-files-thank.md | 5 +++++ packages/oauth-providers/src/providers/google/googleAuth.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/green-files-thank.md diff --git a/.changeset/green-files-thank.md b/.changeset/green-files-thank.md new file mode 100644 index 00000000..3646db72 --- /dev/null +++ b/.changeset/green-files-thank.md @@ -0,0 +1,5 @@ +--- +'@hono/oauth-providers': minor +--- + +Allow for an optional state arg to be passed to Google Auth middleware diff --git a/packages/oauth-providers/src/providers/google/googleAuth.ts b/packages/oauth-providers/src/providers/google/googleAuth.ts index 43e5de0d..1ba22493 100644 --- a/packages/oauth-providers/src/providers/google/googleAuth.ts +++ b/packages/oauth-providers/src/providers/google/googleAuth.ts @@ -11,9 +11,10 @@ export function googleAuth(options: { prompt?: 'none' | 'consent' | 'select_account' client_id?: string client_secret?: string + state?: string }): MiddlewareHandler { return async (c, next) => { - const newState = getRandomState() + const newState = options.state || getRandomState() // Create new Auth instance const auth = new AuthFlow({ client_id: options.client_id || (c.env?.GOOGLE_ID as string),