From eadfff349a4e7525441a28ebaf5aec53924daa61 Mon Sep 17 00:00:00 2001 From: Glavo Date: Sat, 9 Mar 2024 20:25:59 +0800 Subject: [PATCH] Revert "auth: Always check token.exp when launch game (#2642)" (#2908) This reverts commit 8678c0dcf2af0c0d13f7e0ef4417a4fef88bd564. --- .../hmcl/auth/microsoft/MicrosoftAccount.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftAccount.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftAccount.java index 810f56a91..d9eb451a7 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftAccount.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/microsoft/MicrosoftAccount.java @@ -84,16 +84,20 @@ public class MicrosoftAccount extends OAuthAccount { @Override public AuthInfo logIn() throws AuthenticationException { - if (!authenticated || !service.validate(session.getNotAfter(), session.getTokenType(), session.getAccessToken())) { - MicrosoftSession acquiredSession = service.refresh(session); - if (!Objects.equals(acquiredSession.getProfile().getId(), session.getProfile().getId())) { - throw new ServerResponseMalformedException("Selected profile changed"); + if (!authenticated) { + if (service.validate(session.getNotAfter(), session.getTokenType(), session.getAccessToken())) { + authenticated = true; + } else { + MicrosoftSession acquiredSession = service.refresh(session); + if (!Objects.equals(acquiredSession.getProfile().getId(), session.getProfile().getId())) { + throw new ServerResponseMalformedException("Selected profile changed"); + } + + session = acquiredSession; + + authenticated = true; + invalidate(); } - - session = acquiredSession; - - authenticated = true; - invalidate(); } return session.toAuthInfo();