From 24eec67a464c6b21e0278c091dcc0a2ac7eac119 Mon Sep 17 00:00:00 2001 From: CodingPhoenixx Date: Sun, 15 Feb 2026 22:27:13 +0100 Subject: [PATCH] Added auth refresh endpoint --- .../dev/coph/flightscore/backend/Backend.java | 2 + .../auth/RefreshRequestHandler.java | 67 +++++++++++++++++++ yaak/yaak.rq_S8ngkkQLjr.yaml | 26 +++++++ 3 files changed, 95 insertions(+) create mode 100644 src/main/java/dev/coph/flightscore/backend/requestHandler/auth/RefreshRequestHandler.java create mode 100644 yaak/yaak.rq_S8ngkkQLjr.yaml diff --git a/src/main/java/dev/coph/flightscore/backend/Backend.java b/src/main/java/dev/coph/flightscore/backend/Backend.java index e1b9523..415f767 100644 --- a/src/main/java/dev/coph/flightscore/backend/Backend.java +++ b/src/main/java/dev/coph/flightscore/backend/Backend.java @@ -3,6 +3,7 @@ package dev.coph.flightscore.backend; import dev.coph.flightscore.backend.config.Config; import dev.coph.flightscore.backend.provider.ProviderManager; import dev.coph.flightscore.backend.requestHandler.auth.LoginRequestHandler; +import dev.coph.flightscore.backend.requestHandler.auth.RefreshRequestHandler; import dev.coph.flightscore.backend.requestHandler.auth.RegisterRequestHandler; import dev.coph.flightscore.backend.user.UserProvider; import dev.coph.flightscore.backend.user.permission.PermissionProvider; @@ -80,6 +81,7 @@ public class Backend { logger.info("Loading routes..."); webServer.registerRequestHandler(new LoginRequestHandler(this)); webServer.registerRequestHandler(new RegisterRequestHandler(this)); + webServer.registerRequestHandler(new RefreshRequestHandler(this)); logger.success("Routes loaded!"); diff --git a/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/RefreshRequestHandler.java b/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/RefreshRequestHandler.java new file mode 100644 index 0000000..2985919 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/requestHandler/auth/RefreshRequestHandler.java @@ -0,0 +1,67 @@ +package dev.coph.flightscore.backend.requestHandler.auth; + +import dev.coph.flightscore.backend.Backend; +import dev.coph.simplelogger.Logger; +import dev.coph.simplerequest.authentication.AccessLevel; +import dev.coph.simplerequest.body.Body; +import dev.coph.simplerequest.body.JsonBody; +import dev.coph.simplerequest.handler.RequestHandler; +import dev.coph.simplerequest.handler.RequestMethod; +import dev.coph.simplerequest.util.ResponseUtil; +import org.eclipse.jetty.http.HttpStatus; +import org.eclipse.jetty.server.Response; +import org.eclipse.jetty.util.Callback; +import org.json.JSONObject; + +import java.io.IOException; + +public class RefreshRequestHandler { + private final Logger logger = Logger.of("RH - Refresh"); + private final Backend backend; + + + public RefreshRequestHandler(Backend backend) { + this.backend = backend; + } + + + @RequestHandler( + path = "/auth/refresh", + method = RequestMethod.POST, + accesslevel = AccessLevel.AUTHENTICATED + ) + public void handle(Response response, Callback callback, Body body) { + JsonBody json; + try { + json = body.asJSON(); + } catch (IOException e) { + logger.error("Failed to parse JSON body", e); + response.setStatus(HttpStatus.BAD_REQUEST_400); + ResponseUtil.writeAnswer(response, callback, "Invalid body"); + return; + } + + String refreshToken = json.getString("refreshToken"); + + if (refreshToken == null) { + response.setStatus(HttpStatus.BAD_REQUEST_400); + ResponseUtil.writeAnswer(response, callback, "Invalid body"); + return; + } + + var loginResponse = backend.userProvider().refreshToken(refreshToken); + + if (!loginResponse.success()) { + ResponseUtil.writeAnswer(response, callback, loginResponse.message()); + return; + } + + var responseObject = new JSONObject(); + + responseObject.put("accessToken", loginResponse.accessToken()); + responseObject.put("refreshToken", loginResponse.refreshToken()); + + ResponseUtil.writeSuccessfulAnswer(response, callback, responseObject); + } + +} diff --git a/yaak/yaak.rq_S8ngkkQLjr.yaml b/yaak/yaak.rq_S8ngkkQLjr.yaml new file mode 100644 index 0000000..75fbecd --- /dev/null +++ b/yaak/yaak.rq_S8ngkkQLjr.yaml @@ -0,0 +1,26 @@ +type: http_request +model: http_request +id: rq_S8ngkkQLjr +createdAt: 2026-02-15T21:26:11.676766700 +updatedAt: 2026-02-15T21:26:29.741935400 +workspaceId: wk_gViMDNsLC9 +folderId: fl_gBnxCkQD7y +authentication: {} +authenticationType: null +body: + text: |- + { + "refreshToken":"" + } +bodyType: application/json +description: '' +headers: +- enabled: true + name: Content-Type + value: application/json + id: bMujbbncVX +method: POST +name: Refresh +sortPriority: -1753351216694.999 +url: ${[ BASE_URL ]}/auth/refresh +urlParameters: []