@@ -29,15 +29,6 @@ namespace FirebaseAdmin.IntegrationTests.Auth
29
29
{
30
30
public class FirebaseAuthTest : IClassFixture < TemporaryUserBuilder >
31
31
{
32
- private const string EmailLinkSignInUrl =
33
- "https://www.googleapis.com/identitytoolkit/v3/relyingparty/emailLinkSignin" ;
34
-
35
- private const string ResetPasswordUrl =
36
- "https://www.googleapis.com/identitytoolkit/v3/relyingparty/resetPassword" ;
37
-
38
- private const string VerifyCustomTokenUrl =
39
- "https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyCustomToken" ;
40
-
41
32
private const string VerifyPasswordUrl =
42
33
"https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword" ;
43
34
@@ -61,7 +52,7 @@ public async Task CreateCustomToken()
61
52
{
62
53
var customToken = await FirebaseAuth . DefaultInstance
63
54
. CreateCustomTokenAsync ( "testuser" ) ;
64
- var idToken = await SignInWithCustomTokenAsync ( customToken ) ;
55
+ var idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
65
56
var decoded = await FirebaseAuth . DefaultInstance . VerifyIdTokenAsync ( idToken ) ;
66
57
Assert . Equal ( "testuser" , decoded . Uid ) ;
67
58
}
@@ -77,7 +68,7 @@ public async Task CreateCustomTokenWithClaims()
77
68
} ;
78
69
var customToken = await FirebaseAuth . DefaultInstance . CreateCustomTokenAsync (
79
70
"testuser" , developerClaims ) ;
80
- var idToken = await SignInWithCustomTokenAsync ( customToken ) ;
71
+ var idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
81
72
Assert . False ( string . IsNullOrEmpty ( idToken ) ) ;
82
73
var decoded = await FirebaseAuth . DefaultInstance . VerifyIdTokenAsync ( idToken ) ;
83
74
Assert . Equal ( "testuser" , decoded . Uid ) ;
@@ -105,7 +96,7 @@ public async Task CreateCustomTokenWithoutServiceAccount()
105
96
{
106
97
var customToken = await FirebaseAuth . GetAuth ( app ) . CreateCustomTokenAsync (
107
98
"testuser" ) ;
108
- var idToken = await SignInWithCustomTokenAsync ( customToken ) ;
99
+ var idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
109
100
var decoded = await FirebaseAuth . DefaultInstance . VerifyIdTokenAsync ( idToken ) ;
110
101
Assert . Equal ( "testuser" , decoded . Uid ) ;
111
102
}
@@ -120,7 +111,7 @@ public async Task RevokeRefreshTokens()
120
111
{
121
112
var customToken = await FirebaseAuth . DefaultInstance
122
113
. CreateCustomTokenAsync ( "testuser" ) ;
123
- var idToken = await SignInWithCustomTokenAsync ( customToken ) ;
114
+ var idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
124
115
var decoded = await FirebaseAuth . DefaultInstance . VerifyIdTokenAsync ( idToken , true ) ;
125
116
Assert . Equal ( "testuser" , decoded . Uid ) ;
126
117
@@ -135,7 +126,7 @@ public async Task RevokeRefreshTokens()
135
126
Assert . Equal ( ErrorCode . InvalidArgument , exception . ErrorCode ) ;
136
127
Assert . Equal ( AuthErrorCode . RevokedIdToken , exception . AuthErrorCode ) ;
137
128
138
- idToken = await SignInWithCustomTokenAsync ( customToken ) ;
129
+ idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
139
130
decoded = await FirebaseAuth . DefaultInstance . VerifyIdTokenAsync ( idToken , true ) ;
140
131
Assert . Equal ( "testuser" , decoded . Uid ) ;
141
132
}
@@ -598,7 +589,7 @@ public async Task PasswordResetLink()
598
589
NewPassword = "NewP@$$w0rd" ,
599
590
OobCode = query [ "oobCode" ] ,
600
591
} ;
601
- var resetEmail = await ResetPasswordAsync ( request ) ;
592
+ var resetEmail = await AuthIntegrationUtils . ResetPasswordAsync ( request ) ;
602
593
Assert . Equal ( user . Email , resetEmail ) ;
603
594
604
595
// Password reset also verifies the user's email
@@ -618,7 +609,8 @@ public async Task SignInWithEmailLink()
618
609
var query = HttpUtility . ParseQueryString ( uri . Query ) ;
619
610
Assert . Equal ( ContinueUrl , query [ "continueUrl" ] ) ;
620
611
621
- var idToken = await SignInWithEmailLinkAsync ( user . Email , query [ "oobCode" ] ) ;
612
+ var idToken = await AuthIntegrationUtils . SignInWithEmailLinkAsync (
613
+ user . Email , query [ "oobCode" ] ) ;
622
614
Assert . NotEmpty ( idToken ) ;
623
615
624
616
// Sign in with link also verifies the user's email
@@ -630,7 +622,7 @@ public async Task SignInWithEmailLink()
630
622
public async Task SessionCookie ( )
631
623
{
632
624
var customToken = await FirebaseAuth . DefaultInstance . CreateCustomTokenAsync ( "testuser" ) ;
633
- var idToken = await SignInWithCustomTokenAsync ( customToken ) ;
625
+ var idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
634
626
635
627
var options = new SessionCookieOptions ( )
636
628
{
@@ -652,39 +644,13 @@ public async Task SessionCookie()
652
644
Assert . Equal ( ErrorCode . InvalidArgument , exception . ErrorCode ) ;
653
645
Assert . Equal ( AuthErrorCode . RevokedSessionCookie , exception . AuthErrorCode ) ;
654
646
655
- idToken = await SignInWithCustomTokenAsync ( customToken ) ;
647
+ idToken = await AuthIntegrationUtils . SignInWithCustomTokenAsync ( customToken ) ;
656
648
sessionCookie = await FirebaseAuth . DefaultInstance . CreateSessionCookieAsync (
657
649
idToken , options ) ;
658
650
decoded = await FirebaseAuth . DefaultInstance . VerifySessionCookieAsync ( sessionCookie , true ) ;
659
651
Assert . Equal ( "testuser" , decoded . Uid ) ;
660
652
}
661
653
662
- private static async Task < string > SignInWithCustomTokenAsync ( string customToken )
663
- {
664
- var rb = new Google . Apis . Requests . RequestBuilder ( )
665
- {
666
- Method = Google . Apis . Http . HttpConsts . Post ,
667
- BaseUri = new Uri ( VerifyCustomTokenUrl ) ,
668
- } ;
669
- rb . AddParameter ( RequestParameterType . Query , "key" , IntegrationTestUtils . GetApiKey ( ) ) ;
670
- var request = rb . CreateRequest ( ) ;
671
- var jsonSerializer = Google . Apis . Json . NewtonsoftJsonSerializer . Instance ;
672
- var payload = jsonSerializer . Serialize ( new SignInRequest
673
- {
674
- CustomToken = customToken ,
675
- ReturnSecureToken = true ,
676
- } ) ;
677
- request . Content = new StringContent ( payload , Encoding . UTF8 , "application/json" ) ;
678
- using ( var client = new HttpClient ( ) )
679
- {
680
- var response = await client . SendAsync ( request ) ;
681
- response . EnsureSuccessStatusCode ( ) ;
682
- var json = await response . Content . ReadAsStringAsync ( ) ;
683
- var parsed = jsonSerializer . Deserialize < SignInResponse > ( json ) ;
684
- return parsed . IdToken ;
685
- }
686
- }
687
-
688
654
private static async Task < string > SignInWithPasswordAsync ( string email , string password )
689
655
{
690
656
var rb = new Google . Apis . Requests . RequestBuilder ( )
@@ -712,59 +678,6 @@ private static async Task<string> SignInWithPasswordAsync(string email, string p
712
678
}
713
679
}
714
680
715
- private static async Task < string > SignInWithEmailLinkAsync ( string email , string oobCode )
716
- {
717
- var rb = new Google . Apis . Requests . RequestBuilder ( )
718
- {
719
- Method = Google . Apis . Http . HttpConsts . Post ,
720
- BaseUri = new Uri ( EmailLinkSignInUrl ) ,
721
- } ;
722
- rb . AddParameter ( RequestParameterType . Query , "key" , IntegrationTestUtils . GetApiKey ( ) ) ;
723
-
724
- var data = new Dictionary < string , object > ( )
725
- {
726
- { "email" , email } ,
727
- { "oobCode" , oobCode } ,
728
- } ;
729
- var jsonSerializer = Google . Apis . Json . NewtonsoftJsonSerializer . Instance ;
730
- var payload = jsonSerializer . Serialize ( data ) ;
731
-
732
- var request = rb . CreateRequest ( ) ;
733
- request . Content = new StringContent ( payload , Encoding . UTF8 , "application/json" ) ;
734
- using ( var client = new HttpClient ( ) )
735
- {
736
- var response = await client . SendAsync ( request ) ;
737
- response . EnsureSuccessStatusCode ( ) ;
738
- var json = await response . Content . ReadAsStringAsync ( ) ;
739
- var parsed = jsonSerializer . Deserialize < Dictionary < string , object > > ( json ) ;
740
- return ( string ) parsed [ "idToken" ] ;
741
- }
742
- }
743
-
744
- private static async Task < string > ResetPasswordAsync ( ResetPasswordRequest data )
745
- {
746
- var rb = new Google . Apis . Requests . RequestBuilder ( )
747
- {
748
- Method = Google . Apis . Http . HttpConsts . Post ,
749
- BaseUri = new Uri ( ResetPasswordUrl ) ,
750
- } ;
751
- rb . AddParameter ( RequestParameterType . Query , "key" , IntegrationTestUtils . GetApiKey ( ) ) ;
752
-
753
- var jsonSerializer = Google . Apis . Json . NewtonsoftJsonSerializer . Instance ;
754
- var payload = jsonSerializer . Serialize ( data ) ;
755
-
756
- var request = rb . CreateRequest ( ) ;
757
- request . Content = new StringContent ( payload , Encoding . UTF8 , "application/json" ) ;
758
- using ( var client = new HttpClient ( ) )
759
- {
760
- var response = await client . SendAsync ( request ) ;
761
- response . EnsureSuccessStatusCode ( ) ;
762
- var json = await response . Content . ReadAsStringAsync ( ) ;
763
- var parsed = jsonSerializer . Deserialize < Dictionary < string , object > > ( json ) ;
764
- return ( string ) parsed [ "email" ] ;
765
- }
766
- }
767
-
768
681
/**
769
682
* The <c>batchDelete</c> endpoint is currently rate limited to 1qps. Use this test helper
770
683
* to ensure you don't run into quota exceeded errors.
@@ -791,36 +704,6 @@ internal static void NotNull(object obj, string msg)
791
704
}
792
705
}
793
706
794
- internal class ResetPasswordRequest
795
- {
796
- [ Newtonsoft . Json . JsonProperty ( "email" ) ]
797
- public string Email { get ; set ; }
798
-
799
- [ Newtonsoft . Json . JsonProperty ( "oldPassword" ) ]
800
- public string OldPassword { get ; set ; }
801
-
802
- [ Newtonsoft . Json . JsonProperty ( "newPassword" ) ]
803
- public string NewPassword { get ; set ; }
804
-
805
- [ Newtonsoft . Json . JsonProperty ( "oobCode" ) ]
806
- public string OobCode { get ; set ; }
807
- }
808
-
809
- internal class SignInRequest
810
- {
811
- [ Newtonsoft . Json . JsonProperty ( "token" ) ]
812
- public string CustomToken { get ; set ; }
813
-
814
- [ Newtonsoft . Json . JsonProperty ( "returnSecureToken" ) ]
815
- public bool ReturnSecureToken { get ; set ; }
816
- }
817
-
818
- internal class SignInResponse
819
- {
820
- [ Newtonsoft . Json . JsonProperty ( "idToken" ) ]
821
- public string IdToken { get ; set ; }
822
- }
823
-
824
707
internal class VerifyPasswordRequest
825
708
{
826
709
[ Newtonsoft . Json . JsonProperty ( "email" ) ]
0 commit comments