26
26
27
27
@interface FIROAuthCredential ()
28
28
29
+ @property (nonatomic , nullable ) NSString *rawNonce;
30
+
29
31
- (nullable instancetype )initWithProvider : (NSString *)provider NS_UNAVAILABLE;
30
32
31
33
@end
@@ -40,12 +42,14 @@ - (nullable instancetype)initWithProvider:(NSString *)provider {
40
42
41
43
- (instancetype )initWithProviderID : (NSString *)providerID
42
44
IDToken : (nullable NSString *)IDToken
45
+ rawNonce : (nullable NSString *)rawNonce
43
46
accessToken : (nullable NSString *)accessToken
44
47
secret : (nullable NSString *)secret
45
48
pendingToken : (nullable NSString *)pendingToken {
46
49
self = [super initWithProvider: providerID];
47
50
if (self) {
48
51
_IDToken = IDToken;
52
+ _rawNonce = rawNonce;
49
53
_accessToken = accessToken;
50
54
_pendingToken = pendingToken;
51
55
_secret = secret;
@@ -56,8 +60,12 @@ - (instancetype)initWithProviderID:(NSString *)providerID
56
60
- (instancetype )initWithProviderID : (NSString *)providerID
57
61
sessionID : (NSString *)sessionID
58
62
OAuthResponseURLString : (NSString *)OAuthResponseURLString {
59
- self =
60
- [self initWithProviderID: providerID IDToken: nil accessToken: nil secret: nil pendingToken: nil ];
63
+ self = [self initWithProviderID: providerID
64
+ IDToken: nil
65
+ rawNonce: nil
66
+ accessToken: nil
67
+ secret: nil
68
+ pendingToken: nil ];
61
69
if (self) {
62
70
_OAuthResponseURLString = OAuthResponseURLString;
63
71
_sessionID = sessionID;
@@ -71,6 +79,7 @@ - (nullable instancetype)initWithVerifyAssertionResponse:(FIRVerifyAssertionResp
71
79
response.oauthSecretToken .length ) {
72
80
return [self initWithProviderID: response.providerID
73
81
IDToken: response.oauthIDToken
82
+ rawNonce: nil
74
83
accessToken: response.oauthAccessToken
75
84
secret: response.oauthSecretToken
76
85
pendingToken: response.pendingToken];
@@ -80,6 +89,7 @@ - (nullable instancetype)initWithVerifyAssertionResponse:(FIRVerifyAssertionResp
80
89
81
90
- (void )prepareVerifyAssertionRequest : (FIRVerifyAssertionRequest *)request {
82
91
request.providerIDToken = _IDToken;
92
+ request.providerRawNonce = _rawNonce;
83
93
request.providerAccessToken = _accessToken;
84
94
request.requestURI = _OAuthResponseURLString;
85
95
request.sessionID = _sessionID;
@@ -95,11 +105,13 @@ + (BOOL)supportsSecureCoding {
95
105
96
106
- (nullable instancetype )initWithCoder : (NSCoder *)aDecoder {
97
107
NSString *IDToken = [aDecoder decodeObjectOfClass: [NSString class ] forKey: @" IDToken" ];
108
+ NSString *rawNonce = [aDecoder decodeObjectOfClass: [NSString class ] forKey: @" rawNonce" ];
98
109
NSString *accessToken = [aDecoder decodeObjectOfClass: [NSString class ] forKey: @" accessToken" ];
99
110
NSString *pendingToken = [aDecoder decodeObjectOfClass: [NSString class ] forKey: @" pendingToken" ];
100
111
NSString *secret = [aDecoder decodeObjectOfClass: [NSString class ] forKey: @" secret" ];
101
112
self = [self initWithProviderID: self .provider
102
113
IDToken: IDToken
114
+ rawNonce: rawNonce
103
115
accessToken: accessToken
104
116
secret: secret
105
117
pendingToken: pendingToken];
@@ -108,6 +120,7 @@ - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder {
108
120
109
121
- (void )encodeWithCoder : (NSCoder *)aCoder {
110
122
[aCoder encodeObject: self .IDToken forKey: @" IDToken" ];
123
+ [aCoder encodeObject: self .IDToken forKey: @" rawNonce" ];
111
124
[aCoder encodeObject: self .accessToken forKey: @" accessToken" ];
112
125
[aCoder encodeObject: self .pendingToken forKey: @" pendingToken" ];
113
126
[aCoder encodeObject: self .secret forKey: @" secret" ];
0 commit comments