Compare commits

...

2 Commits

Author SHA1 Message Date
Nhat Bui 9402c6b4c5
Merge 437426cfc4 into bebdfa2a88 2025-04-09 20:25:42 +10:00
buiducnhat 437426cfc4 feat(oauth-providers): availbility pass state into middlewares 2024-12-30 23:14:40 +07:00
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({