Nhat Bui 2025-04-07 21:10:44 +10:00 committed by GitHub
commit bf9035c5a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 13 additions and 4 deletions

View File

@ -0,0 +1,5 @@
---
'@hono/oauth-providers': minor
---
Add availbility to pass parameter state into OAuth middlewares

View File

@ -12,10 +12,11 @@ export function facebookAuth(options: {
fields: Fields[] fields: Fields[]
client_id?: string client_id?: string
client_secret?: string client_secret?: string
state?: string
redirect_uri?: string redirect_uri?: string
}): MiddlewareHandler { }): MiddlewareHandler {
return async (c, next) => { return async (c, next) => {
const newState = getRandomState() const newState = options.state || getRandomState()
// Create new Auth instance // Create new Auth instance
const auth = new AuthFlow({ const auth = new AuthFlow({
client_id: options.client_id || (env(c).FACEBOOK_ID as string), client_id: options.client_id || (env(c).FACEBOOK_ID as string),

View File

@ -12,10 +12,11 @@ export function githubAuth(options: {
client_secret?: string client_secret?: string
scope?: GitHubScope[] scope?: GitHubScope[]
oauthApp?: boolean oauthApp?: boolean
state?: string
redirect_uri?: string redirect_uri?: string
}): MiddlewareHandler { }): MiddlewareHandler {
return async (c, next) => { return async (c, next) => {
const newState = getRandomState() const newState = options.state || getRandomState()
// Create new Auth instance // Create new Auth instance
const auth = new AuthFlow({ const auth = new AuthFlow({
client_id: options.client_id || (env(c).GITHUB_ID as string), client_id: options.client_id || (env(c).GITHUB_ID as string),

View File

@ -12,10 +12,11 @@ export function linkedinAuth(options: {
client_secret?: string client_secret?: string
scope?: LinkedInScope[] scope?: LinkedInScope[]
appAuth?: boolean appAuth?: boolean
state?: string
redirect_uri?: string redirect_uri?: string
}): MiddlewareHandler { }): MiddlewareHandler {
return async (c, next) => { return async (c, next) => {
const newState = getRandomState() const newState = options.state || getRandomState()
// Create new Auth instance // Create new Auth instance
const auth = new AuthFlow({ const auth = new AuthFlow({
client_id: options.client_id || (env(c).LINKEDIN_ID as string), client_id: options.client_id || (env(c).LINKEDIN_ID as string),

View File

@ -13,11 +13,12 @@ export function xAuth(options: {
fields?: XFields[] fields?: XFields[]
client_id?: string client_id?: string
client_secret?: string client_secret?: string
state?: string
redirect_uri?: string redirect_uri?: string
}): MiddlewareHandler { }): MiddlewareHandler {
return async (c, next) => { return async (c, next) => {
// Generate encoded "keys" // Generate encoded "keys"
const newState = getRandomState() const newState = options.state || getRandomState()
const challenge = await getCodeChallenge() const challenge = await getCodeChallenge()
const auth = new AuthFlow({ const auth = new AuthFlow({