@@ -89,10 +89,10 @@ export async function intelligenceAPIAuthentication(sessionID: string, orgId: st
8989 let user = '' ;
9090 let userId = '' ;
9191 try {
92- const session = await vscode . authentication . getSession ( PROVIDER_ID , [ `${ INTELLIGENCE_SCOPE_DEFAULT } ` ] , { silent : true } ) ;
92+ let session = await vscode . authentication . getSession ( PROVIDER_ID , [ `${ INTELLIGENCE_SCOPE_DEFAULT } ` ] , { silent : true } ) ;
9393
9494 if ( ! session ) {
95- return { accessToken , user , userId } ;
95+ session = await vscode . authentication . getSession ( PROVIDER_ID , [ ` ${ INTELLIGENCE_SCOPE_DEFAULT } ` ] , { createIfNone : true } ) ;
9696 }
9797
9898 accessToken = session ?. accessToken ?? '' ;
@@ -121,7 +121,7 @@ export async function dataverseAuthentication(
121121 let accessToken = "" ;
122122 let userId = "" ;
123123 try {
124- const session = await vscode . authentication . getSession (
124+ let session = await vscode . authentication . getSession (
125125 PROVIDER_ID ,
126126 [
127127 `${ dataverseOrgURL } ${ SCOPE_OPTION_DEFAULT } ` ,
@@ -131,7 +131,14 @@ export async function dataverseAuthentication(
131131 ) ;
132132
133133 if ( ! session ) {
134- return { accessToken, userId } ;
134+ session = await vscode . authentication . getSession (
135+ PROVIDER_ID ,
136+ [
137+ `${ dataverseOrgURL } ${ SCOPE_OPTION_DEFAULT } ` ,
138+ `${ SCOPE_OPTION_OFFLINE_ACCESS } ` ,
139+ ] ,
140+ { createIfNone : true }
141+ ) ;
135142 }
136143
137144 accessToken = session ?. accessToken ?? "" ;
@@ -172,11 +179,18 @@ export async function npsAuthentication(
172179 { eventName : VSCODE_EXTENSION_NPS_AUTHENTICATION_STARTED }
173180 ) ;
174181 try {
175- const session = await vscode . authentication . getSession (
182+ let session = await vscode . authentication . getSession (
176183 PROVIDER_ID ,
177- [ cesSurveyAuthorizationEndpoint ] ,
184+ [ cesSurveyAuthorizationEndpoint , SCOPE_OPTION_OFFLINE_ACCESS ] ,
178185 { silent : true }
179186 ) ;
187+ if ( ! session ) {
188+ session = await vscode . authentication . getSession (
189+ PROVIDER_ID ,
190+ [ cesSurveyAuthorizationEndpoint , SCOPE_OPTION_OFFLINE_ACCESS ] ,
191+ { createIfNone : true }
192+ ) ;
193+ }
180194 accessToken = session ?. accessToken ?? "" ;
181195 if ( ! accessToken ) {
182196 throw new Error ( ERROR_CONSTANTS . NO_ACCESS_TOKEN ) ;
@@ -212,6 +226,7 @@ export async function graphClientAuthentication(
212226 [
213227 SCOPE_OPTION_CONTACTS_READ ,
214228 SCOPE_OPTION_USERS_READ_BASIC_ALL ,
229+ SCOPE_OPTION_OFFLINE_ACCESS
215230 ] ,
216231 { silent : true }
217232 ) ;
@@ -222,6 +237,7 @@ export async function graphClientAuthentication(
222237 [
223238 SCOPE_OPTION_CONTACTS_READ ,
224239 SCOPE_OPTION_USERS_READ_BASIC_ALL ,
240+ SCOPE_OPTION_OFFLINE_ACCESS
225241 ] ,
226242 { createIfNone : true }
227243 ) ;
@@ -258,14 +274,18 @@ export async function bapServiceAuthentication(
258274) : Promise < string > {
259275 let accessToken = "" ;
260276 try {
261- const session = await vscode . authentication . getSession (
277+ let session = await vscode . authentication . getSession (
262278 PROVIDER_ID ,
263- [ BAP_SERVICE_SCOPE_DEFAULT ] ,
279+ [ BAP_SERVICE_SCOPE_DEFAULT , SCOPE_OPTION_OFFLINE_ACCESS ] ,
264280 { silent : true }
265281 ) ;
266282
267283 if ( ! session ) {
268- return accessToken ;
284+ session = await vscode . authentication . getSession (
285+ PROVIDER_ID ,
286+ [ BAP_SERVICE_SCOPE_DEFAULT , SCOPE_OPTION_OFFLINE_ACCESS ] ,
287+ { createIfNone : true }
288+ ) ;
269289 }
270290
271291 accessToken = session ?. accessToken ?? "" ;
@@ -316,14 +336,18 @@ export async function powerPlatformAPIAuthentication(
316336 let accessToken = "" ;
317337 const PPAPI_WEBSITES_ENDPOINT = serviceScopeMapping [ serviceEndpointStamp ] ;
318338 try {
319- const session = await vscode . authentication . getSession (
339+ let session = await vscode . authentication . getSession (
320340 PROVIDER_ID ,
321- [ PPAPI_WEBSITES_ENDPOINT ] ,
341+ [ PPAPI_WEBSITES_ENDPOINT , SCOPE_OPTION_OFFLINE_ACCESS ] ,
322342 { silent : true }
323343 ) ;
324344
325345 if ( ! session ) {
326- return accessToken ;
346+ session = await vscode . authentication . getSession (
347+ PROVIDER_ID ,
348+ [ PPAPI_WEBSITES_ENDPOINT , SCOPE_OPTION_OFFLINE_ACCESS ] ,
349+ { createIfNone : true }
350+ ) ;
327351 }
328352
329353 accessToken = session ?. accessToken ?? "" ;
@@ -379,7 +403,7 @@ export async function authenticateUserInVSCode(isSilent = false): Promise<void>
379403 */
380404async function authenticateUserInternal ( createIfNone : boolean ) : Promise < boolean > {
381405 try {
382- const session = await vscode . authentication . getSession ( PROVIDER_ID , [ ] , { createIfNone : createIfNone } ) ;
406+ const session = await vscode . authentication . getSession ( PROVIDER_ID , [ SCOPE_OPTION_OFFLINE_ACCESS ] , { createIfNone : createIfNone } ) ;
383407
384408 if ( session ) {
385409 const userId = getOIDFromToken ( session . accessToken ) ;
0 commit comments