Skip to content

Commit a59b4d7

Browse files
authored
feat(auth): Added VerifySessionCookieAsync() APIs (#177)
* feat(auth): Added VerifySessionCookieAsync() APIs * Updated API ref docs
1 parent 754a89e commit a59b4d7

File tree

9 files changed

+652
-10
lines changed

9 files changed

+652
-10
lines changed

FirebaseAdmin/FirebaseAdmin.Tests/Auth/EmailActionRequestTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ private FirebaseAuth CreateFirebaseAuth(HttpMessageHandler handler)
365365
UserManager = new Lazy<FirebaseUserManager>(userManager),
366366
TokenFactory = new Lazy<FirebaseTokenFactory>(),
367367
IdTokenVerifier = new Lazy<FirebaseTokenVerifier>(),
368+
SessionCookieVerifier = new Lazy<FirebaseTokenVerifier>(),
368369
});
369370
}
370371

FirebaseAdmin/FirebaseAdmin.Tests/Auth/FirebaseTokenVerifierTest.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public void NoProjectId()
3131
Credential = MockCredential,
3232
});
3333
Assert.Throws<ArgumentException>(() => FirebaseTokenVerifier.CreateIDTokenVerifier(app));
34+
Assert.Throws<ArgumentException>(() => FirebaseTokenVerifier.CreateSessionCookieVerifier(app));
3435
}
3536

3637
[Fact]
@@ -43,6 +44,9 @@ public void ProjectIdFromOptions()
4344
});
4445
var verifier = FirebaseTokenVerifier.CreateIDTokenVerifier(app);
4546
Assert.Equal("explicit-project-id", verifier.ProjectId);
47+
48+
verifier = FirebaseTokenVerifier.CreateSessionCookieVerifier(app);
49+
Assert.Equal("explicit-project-id", verifier.ProjectId);
4650
}
4751

4852
[Fact]
@@ -54,6 +58,9 @@ public void ProjectIdFromServiceAccount()
5458
});
5559
var verifier = FirebaseTokenVerifier.CreateIDTokenVerifier(app);
5660
Assert.Equal("test-project", verifier.ProjectId);
61+
62+
verifier = FirebaseTokenVerifier.CreateSessionCookieVerifier(app);
63+
Assert.Equal("test-project", verifier.ProjectId);
5764
}
5865

5966
[Fact]
@@ -68,6 +75,9 @@ public void ProjectIdFromEnvironment()
6875
});
6976
var verifier = FirebaseTokenVerifier.CreateIDTokenVerifier(app);
7077
Assert.Equal("env-project-id", verifier.ProjectId);
78+
79+
verifier = FirebaseTokenVerifier.CreateSessionCookieVerifier(app);
80+
Assert.Equal("env-project-id", verifier.ProjectId);
7181
}
7282
finally
7383
{

FirebaseAdmin/FirebaseAdmin.Tests/Auth/FirebaseUserManagerTest.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1723,6 +1723,7 @@ private FirebaseAuth CreateFirebaseAuth(HttpMessageHandler handler)
17231723
UserManager = new Lazy<FirebaseUserManager>(userManager),
17241724
TokenFactory = new Lazy<FirebaseTokenFactory>(),
17251725
IdTokenVerifier = new Lazy<FirebaseTokenVerifier>(),
1726+
SessionCookieVerifier = new Lazy<FirebaseTokenVerifier>(),
17261727
});
17271728
}
17281729

FirebaseAdmin/FirebaseAdmin.Tests/Auth/IdTokenVerificationTest.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public async Task InvalidIssuer()
226226
var exception = await Assert.ThrowsAsync<FirebaseAuthException>(
227227
async () => await auth.VerifyIdTokenAsync(idToken));
228228

229-
var expectedMessage = "ID token has incorrect issuer (iss) claim.";
229+
var expectedMessage = "Firebase ID token has incorrect issuer (iss) claim.";
230230
this.CheckException(exception, expectedMessage);
231231
}
232232

@@ -243,7 +243,7 @@ public async Task InvalidAudience()
243243
var exception = await Assert.ThrowsAsync<FirebaseAuthException>(
244244
async () => await auth.VerifyIdTokenAsync(idToken));
245245

246-
var expectedMessage = "ID token has incorrect audience (aud) claim."
246+
var expectedMessage = "Firebase ID token has incorrect audience (aud) claim."
247247
+ " Expected test-project but got wrong-audience";
248248
this.CheckException(exception, expectedMessage);
249249
}
@@ -401,7 +401,7 @@ internal static async Task<string> CreateTestTokenAsync(
401401
return await JwtUtils.CreateSignedJwtAsync(header, payload, Signer);
402402
}
403403

404-
private static ISigner CreateTestSigner()
404+
internal static ISigner CreateTestSigner()
405405
{
406406
var credential = GoogleCredential.FromFile("./resources/service_account.json");
407407
var serviceAccount = (ServiceAccountCredential)credential.UnderlyingCredential;
@@ -428,6 +428,7 @@ private FirebaseAuth CreateFirebaseAuth(HttpMessageHandler handler = null)
428428
return new FirebaseAuth(new FirebaseAuth.FirebaseAuthArgs()
429429
{
430430
IdTokenVerifier = new Lazy<FirebaseTokenVerifier>(tokenVerifier),
431+
SessionCookieVerifier = new Lazy<FirebaseTokenVerifier>(),
431432
UserManager = new Lazy<FirebaseUserManager>(userManager),
432433
TokenFactory = new Lazy<FirebaseTokenFactory>(),
433434
});

0 commit comments

Comments
 (0)