firebase-admin-dotnet icon indicating copy to clipboard operation
firebase-admin-dotnet copied to clipboard

CreateSessionCookieAsync use wrong url to make request to the API

Open AlexanderVorobyov opened this issue 3 years ago • 1 comments

[REQUIRED] Step 2: Describe your environment

  • Operating System version: Windows 11
  • Firebase SDK version: 2.3.0
  • Firebase Product: Auth
  • .NET version: .NET Core 3.1
  • OS: Windows

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

CreateSessionCookieAsync always results with Not Found status code. (Tested with Emulator)

PostAndDeserializeAsync method builds URL always including / character between base Url and Path.

In case of createSessionCookie API the result url will be wrong:

Current:

Firebase: POST https://identitytoolkit.googleapis.com/v1/projects/{targetProjectId}/:createSessionCookie
Emulator: POST http:/localhost:9099/identitytoolkit.googleapis.com/v1/projects/{targetProjectId}/:createSessionCookie

Should be:

Firebase: POST https://identitytoolkit.googleapis.com/v1/projects/{targetProjectId}:createSessionCookie
Emulator: POST http:/localhost:9099/identitytoolkit.googleapis.com/v1/projects/{targetProjectId}:createSessionCookie

Relevant Code:

https://github.com/firebase/firebase-admin-dotnet/blob/0870aa628e2b6b7632001e1d5c9a2e782cda3598/FirebaseAdmin/FirebaseAdmin/Auth/Users/FirebaseUserManager.cs#L386

https://github.com/firebase/firebase-admin-dotnet/blob/0870aa628e2b6b7632001e1d5c9a2e782cda3598/FirebaseAdmin/FirebaseAdmin/Auth/Users/FirebaseUserManager.cs#L430

AlexanderVorobyov avatar Aug 15 '22 18:08 AlexanderVorobyov

Also, I found that CreateSessionCookieVerifier() has missing setup for IsEmulatorMode argument and that causing the error when validate session cookie from emulator.

https://github.com/firebase/firebase-admin-dotnet/blob/0870aa628e2b6b7632001e1d5c9a2e782cda3598/FirebaseAdmin/FirebaseAdmin/Auth/Jwt/FirebaseTokenVerifier.cs#L142

AlexanderVorobyov avatar Aug 16 '22 18:08 AlexanderVorobyov