File tree Expand file tree Collapse file tree 3 files changed +35
-3
lines changed
packages/auth/src/api/authentication Expand file tree Collapse file tree 3 files changed +35
-3
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " @firebase/auth " : patch
3
+ ---
4
+
5
+ Fixed issue where requestSts wasn't including the Firebase Studio cookie in it
Original file line number Diff line number Diff line change @@ -95,6 +95,26 @@ describe('requestStsToken', () => {
95
95
) ;
96
96
} ) ;
97
97
98
+ it ( 'should use credentials: include when using Firebase Studio' , async ( ) => {
99
+ const mock = fetch . mock ( endpoint , {
100
+ 'access_token' : 'new-access-token' ,
101
+ 'expires_in' : '3600' ,
102
+ 'refresh_token' : 'new-refresh-token'
103
+ } ) ;
104
+
105
+ auth . _logFramework ( 'Mythical' ) ;
106
+ auth . emulatorConfig = {
107
+ host : 'something.cloudworkstations.dev' ,
108
+ port : 443 ,
109
+ options : { disableWarnings : false } ,
110
+ protocol : 'https'
111
+ } ;
112
+ await requestStsToken ( auth , 'some-refresh-token' ) ;
113
+ expect ( mock . calls [ 0 ] . fullRequest ?. credentials ) . to . eq ( 'include' ) ;
114
+
115
+ auth . emulatorConfig = null ;
116
+ } ) ;
117
+
98
118
it ( 'should include whatever headers come from auth impl' , async ( ) => {
99
119
sinon . stub ( auth , '_getAdditionalHeaders' ) . returns (
100
120
Promise . resolve ( {
Original file line number Diff line number Diff line change 17
17
18
18
/* eslint-disable camelcase */
19
19
20
- import { querystring } from '@firebase/util' ;
20
+ import { isCloudWorkstation , querystring } from '@firebase/util' ;
21
21
22
22
import {
23
23
_getFinalTarget ,
@@ -84,11 +84,18 @@ export async function requestStsToken(
84
84
const headers = await ( auth as AuthInternal ) . _getAdditionalHeaders ( ) ;
85
85
headers [ HttpHeader . CONTENT_TYPE ] = 'application/x-www-form-urlencoded' ;
86
86
87
- return FetchProvider . fetch ( ) ( url , {
87
+ const options : RequestInit = {
88
88
method : HttpMethod . POST ,
89
89
headers,
90
90
body
91
- } ) ;
91
+ } ;
92
+ if (
93
+ auth . emulatorConfig &&
94
+ isCloudWorkstation ( auth . emulatorConfig . host )
95
+ ) {
96
+ options . credentials = 'include' ;
97
+ }
98
+ return FetchProvider . fetch ( ) ( url , options ) ;
92
99
}
93
100
) ;
94
101
You can’t perform that action at this time.
0 commit comments