Skip to content

Commit 58c8efd

Browse files
authored
Updating getAuthToken to return creation timestamp (#884)
* Updating getAuthToken to return creation timestamp along with auth token and expiration timestamp.
1 parent e68e599 commit 58c8efd

File tree

7 files changed

+29
-13
lines changed

7 files changed

+29
-13
lines changed

firebase-installations-interop/api.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@ package com.google.firebase.installations {
55
ctor public InstallationTokenResult();
66
method @NonNull public static com.google.firebase.installations.InstallationTokenResult.Builder builder();
77
method @NonNull public abstract String getToken();
8-
method @NonNull public abstract long getTokenExpirationInSecs();
8+
method @NonNull public abstract long getTokenCreationTimestamp();
9+
method @NonNull public abstract long getTokenExpirationTimestamp();
910
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder toBuilder();
1011
}
1112

1213
public abstract static class InstallationTokenResult.Builder {
1314
ctor public InstallationTokenResult.Builder();
1415
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult build();
1516
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setToken(@NonNull String);
16-
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationInSecs(long);
17+
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenCreationTimestamp(long);
18+
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationTimestamp(long);
1719
}
1820

1921
}

firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,13 @@ public abstract class InstallationTokenResult {
2828
* The amount of time, in seconds, before the auth-token expires for this Firebase Installation.
2929
*/
3030
@NonNull
31-
public abstract long getTokenExpirationInSecs();
31+
public abstract long getTokenExpirationTimestamp();
32+
33+
/**
34+
* The amount of time, in seconds, when the auth-token was created for this Firebase Installation.
35+
*/
36+
@NonNull
37+
public abstract long getTokenCreationTimestamp();
3238

3339
@NonNull
3440
public abstract Builder toBuilder();
@@ -45,7 +51,10 @@ public abstract static class Builder {
4551
public abstract Builder setToken(@NonNull String value);
4652

4753
@NonNull
48-
public abstract Builder setTokenExpirationInSecs(long value);
54+
public abstract Builder setTokenExpirationTimestamp(long value);
55+
56+
@NonNull
57+
public abstract Builder setTokenCreationTimestamp(long value);
4958

5059
@NonNull
5160
public abstract InstallationTokenResult build();

firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,15 +527,17 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th
527527
(unused) ->
528528
InstallationTokenResult.builder()
529529
.setToken(TEST_AUTH_TOKEN_3)
530-
.setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP)
530+
.setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP)
531+
.setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1)
531532
.build()))
532533
.doAnswer(
533534
AdditionalAnswers.answersWithDelay(
534535
500,
535536
(unused) ->
536537
InstallationTokenResult.builder()
537538
.setToken(TEST_AUTH_TOKEN_4)
538-
.setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP)
539+
.setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP)
540+
.setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1)
539541
.build()))
540542
.when(backendClientReturnsOk)
541543
.generateAuthToken(anyString(), anyString(), anyString(), anyString());

firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@ public final class FisAndroidTestConstants {
4949
.setAuthToken(
5050
InstallationTokenResult.builder()
5151
.setToken(TEST_AUTH_TOKEN)
52-
.setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP)
52+
.setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP)
53+
.setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1)
5354
.build())
5455
.build();
5556

5657
public static final InstallationTokenResult TEST_INSTALLATION_TOKEN_RESULT =
5758
InstallationTokenResult.builder()
5859
.setToken(TEST_AUTH_TOKEN_2)
59-
.setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP)
60+
.setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP)
61+
.setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1)
6062
.build();
6163
}

firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ private Void registerAndSaveFid(PersistedFidEntry persistedFidEntry)
285285
.setRegistrationStatus(RegistrationStatus.REGISTERED)
286286
.setAuthToken(installationResponse.getAuthToken().getToken())
287287
.setRefreshToken(installationResponse.getRefreshToken())
288-
.setExpiresInSecs(installationResponse.getAuthToken().getTokenExpirationInSecs())
288+
.setExpiresInSecs(installationResponse.getAuthToken().getTokenExpirationTimestamp())
289289
.setTokenCreationEpochInSecs(creationTime)
290290
.build());
291291

@@ -314,7 +314,7 @@ private InstallationTokenResult fetchAuthTokenFromServer(PersistedFidEntry persi
314314
.setRegistrationStatus(RegistrationStatus.REGISTERED)
315315
.setAuthToken(tokenResult.getToken())
316316
.setRefreshToken(persistedFidEntry.getRefreshToken())
317-
.setExpiresInSecs(tokenResult.getTokenExpirationInSecs())
317+
.setExpiresInSecs(tokenResult.getTokenExpirationTimestamp())
318318
.setTokenCreationEpochInSecs(creationTime)
319319
.build());
320320

firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ public boolean onStateReached(
3737
resultTaskCompletionSource.setResult(
3838
InstallationTokenResult.builder()
3939
.setToken(persistedFidEntry.getAuthToken())
40-
.setTokenExpirationInSecs(persistedFidEntry.getExpiresInSecs())
40+
.setTokenExpirationTimestamp(persistedFidEntry.getExpiresInSecs())
41+
.setTokenCreationTimestamp(persistedFidEntry.getTokenCreationEpochInSecs())
4142
.build());
4243
return true;
4344
}

firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ private InstallationResponse readCreateResponse(HttpsURLConnection conn) throws
279279
if (key.equals("token")) {
280280
installationTokenResult.setToken(reader.nextString());
281281
} else if (key.equals("expiresIn")) {
282-
installationTokenResult.setTokenExpirationInSecs(
282+
installationTokenResult.setTokenExpirationTimestamp(
283283
parseTokenExpirationTimestamp(reader.nextString()));
284284
} else {
285285
reader.skipValue();
@@ -308,7 +308,7 @@ private InstallationTokenResult readGenerateAuthTokenResponse(HttpsURLConnection
308308
if (name.equals("token")) {
309309
builder.setToken(reader.nextString());
310310
} else if (name.equals("expiresIn")) {
311-
builder.setTokenExpirationInSecs(parseTokenExpirationTimestamp(reader.nextString()));
311+
builder.setTokenExpirationTimestamp(parseTokenExpirationTimestamp(reader.nextString()));
312312
} else {
313313
reader.skipValue();
314314
}

0 commit comments

Comments
 (0)