buildProviderConfig lets an undefined option overwrite the preset (e.g. scope from onResolveProvider)
I maintainer di solito rispondono entro 5 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 86/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- authentication
Direzione di ricerca
Inizia da buildProviderConfig in src/lib/config.ts, quindi confronta il suo comportamento con l'output compilato in dist/lib/config.js e con la gestione di scope indicata in dist/lib/OAuthProvider.js. Aggiungi il test unitario richiesto per una configurazione Google risolta con scope: undefined e verifica che il preset conservi 'openid profile email', mentre i valori espliciti null o stringa vuota rimangano distinguibili.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens
buildProviderConfig (src/lib/config.ts) copies every key of the caller's provider options into expandedOptions, including keys whose value is undefined, then builds the config as { ...pluginDefaults, ...providerPreset, ...expandedOptions, redirectUri }. An option present with value undefined therefore overwrites the preset's value.
The common trigger is a dynamic provider from onResolveProvider: a hook that returns a config object built from a database row naturally writes scope: row.scope, which is undefined when the row has no custom scope. For the Google preset that replaces 'openid profile email' with undefined, OAuthProvider then sends scope: this.config.scope || '', and Google rejects the authorization request (an empty scope). The same shape can clear any preset default (usernameClaim, issuer, jwksUri, …) that a hook passes through unset.
Verified by reading the 2.7.0 build (dist/lib/config.js ~L205-L262, dist/lib/OAuthProvider.js ~L59); found through a consumer whose resolver returns scope: config.scope for every org provider.
Expected
An option whose value is undefined means "not specified" and must not override the plugin default or the preset. Skip undefined values when building expandedOptions (keep null/'' as explicit values if that's the intended contract, and document it), with a unit test: a Google config resolved with scope: undefined ends up with 'openid profile email'.
- Lingua principale
- JavaScript
- Stelle
- 1
- Fork
- 2
- Merge medio
- 3g 8h
- PR unite (30g)
- 11
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di HarperFast/oauth
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
HarperFast/oauth#207 ·
I maintainer di solito rispondono entro 5 giorni
-
Provider-type check in the 2.7.0 evidence path is case-sensitive while preset resolution is notAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
HarperFast/oauth#242 ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
HarperFast/oauth#240 ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
HarperFast/oauth#231 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
HarperFast/oauth#230 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di HarperFast/oauth
Issue simili
-
refactor
Difficoltà 2/5 Mezza giornata Idoneità per principianti 84/100
I maintainer di solito rispondono entro 5 giorni
-
translation
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ciderapp/translations#87 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
component: split-view platform: windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
zen-browser/desktop#15616 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno