Skip to content

Commit 078964f

Browse files
committed
revoke and update db
1 parent adf2493 commit 078964f

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

auth/src/main/java/com/google/firebase/quickstart/AuthSnippets.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -211,28 +211,31 @@ public static void verifyIdTokenCheckRevoked(String idToken) throws InterruptedE
211211
// [START verify_id_token_check_revoked]
212212
// Note the second parameter, checkRevoked set to true.
213213
try {
214-
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken, true).get();
214+
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken, true).get();
215+
String uid = decodedToken.getUid();
215216
}
216217
catch (FirebaseAuthException e) {
217218
if (FirebaseUserManager.ID_TOKEN_REVOKED_ERROR == e.getErrorCode()) {
218219
// Token is valid but has been revoked.
219220
// When this occurs, inform the user to reauthenticate or signOut() the user.
221+
} else {
222+
// Error is other than "revoked" token is invalid.
220223
}
221-
222-
223224
}
224-
225-
String uid = decodedToken.getUid();
226225
// [END verify_id_token_check_revoked]
227226
System.out.println("Decoded ID token from user: " + uid);
228227
}
229228

230229
public static void revokeIdTokens(String idToken) throws InterruptedException, ExecutionException {
230+
String uid="someUid";
231231
// [START revoke_tokens]
232-
// idToken comes from the client app (shown above)
233-
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken).get();
234-
String uid = decodedToken.getUid();
235-
232+
FirebaseToken decodedToken = FirebaseAuth.getInstance().revokeRefreshTokens(uid).get();
233+
UserRecord user = FirebaseAuth.getInstance().getUserAsync(uid).get();
234+
long revocationSecond = user.getTokensValidAfterTimestamp() / 1000;
235+
236+
final FirebaseDatabase database = FirebaseDatabase.getInstance();
237+
DatabaseReference ref = database.getReference("metadata/" + uid);
238+
ref.setValueAsync(MapBuilder.of("revokeTime", revocationSecond));
236239
// [END revoke_tokens]
237240
System.out.println("Decoded ID token from user: " + uid);
238241
}

0 commit comments

Comments
 (0)