diff --git a/packages/oidc_core/lib/src/managers/user_manager_base.dart b/packages/oidc_core/lib/src/managers/user_manager_base.dart index afc0a28d..b1e417c7 100644 --- a/packages/oidc_core/lib/src/managers/user_manager_base.dart +++ b/packages/oidc_core/lib/src/managers/user_manager_base.dart @@ -760,7 +760,7 @@ abstract class OidcUserManagerBase { clientId: clientCredentials.clientId, clientSecret: clientCredentials.clientSecret, extra: settings.extraTokenParameters, - scope: settings.scope, + scope: settings.includeScopesOnRefresh ? settings.scope : [], ), ); return createUserFromToken( @@ -821,7 +821,7 @@ abstract class OidcUserManagerBase { clientId: clientCredentials.clientId, clientSecret: clientCredentials.clientSecret, extra: settings.extraTokenParameters, - scope: settings.scope, + scope: settings.includeScopesOnRefresh ? settings.scope : [], ), ); newUser = await createUserFromToken( diff --git a/packages/oidc_core/lib/src/models/settings/user_manager_settings.dart b/packages/oidc_core/lib/src/models/settings/user_manager_settings.dart index f4c820e7..023eafca 100644 --- a/packages/oidc_core/lib/src/models/settings/user_manager_settings.dart +++ b/packages/oidc_core/lib/src/models/settings/user_manager_settings.dart @@ -35,6 +35,7 @@ class OidcUserManagerSettings { this.sessionManagementSettings = const OidcSessionManagementSettings(), this.getIdToken, this.supportOfflineAuth = false, + this.includeScopesOnRefresh = true, }); /// The default scopes @@ -127,6 +128,9 @@ class OidcUserManagerSettings { /// platform-specific options. final OidcPlatformSpecificOptions? options; + + /// Specify whether or not to include scopes when refresh token + final bool includeScopesOnRefresh; } ///