@@ -576,9 +576,11 @@ void QFieldCloudConnection::setAuthenticationDetails( QNetworkRequest &request )
576
576
577
577
if ( !mProvider .isEmpty () )
578
578
{
579
+ QString providerId;
579
580
if ( mProviderConfigId .isEmpty () && mAvailableProviders .contains ( mProvider ) )
580
581
{
581
582
const QVariantMap providerDetails = mAvailableProviders [mProvider ].details ();
583
+ providerId = providerDetails.value ( " id" ).toString ();
582
584
583
585
QVariantMap configMap;
584
586
configMap[" accessMethod" ] = 0 ;
@@ -604,14 +606,23 @@ void QFieldCloudConnection::setAuthenticationDetails( QNetworkRequest &request )
604
606
config.setName ( " qfieldcloud-sso" );
605
607
config.setMethod ( " OAuth2" );
606
608
config.setConfig ( " oauth2config" , json.toJson () );
609
+ config.setConfig ( " qfieldcloud-sso-id" , providerId );
607
610
QgsApplication::instance ()->authManager ()->storeAuthenticationConfig ( config, true );
608
611
609
612
mProviderConfigId = config.id ();
610
613
QSettings ().setValue ( QStringLiteral ( " /QFieldCloud/providerConfigId" ), mProviderConfigId );
611
614
emit providerConfigurationChanged ();
612
615
}
616
+ else
617
+ {
618
+ QgsAuthMethodConfig config;
619
+ QgsApplication::instance ()->authManager ()->loadAuthenticationConfig ( mProviderConfigId , config, true );
620
+ providerId = config.config ( " qfieldcloud-sso-id" );
621
+ }
613
622
614
623
QgsApplication::instance ()->authManager ()->updateNetworkRequest ( request, mProviderConfigId );
624
+ request.setRawHeader ( " X-QFC-IDP-ID" , providerId.toLatin1 () );
625
+
615
626
const QList<QNetworkCookie> cookies = QgsNetworkAccessManager::instance ()->cookieJar ()->cookiesForUrl ( mUrl );
616
627
for ( const QNetworkCookie &cookie : cookies )
617
628
{
0 commit comments