Added auth refresh endpoint

This commit is contained in:
CodingPhoenixx
2026-02-15 22:27:13 +01:00
parent c285c261d1
commit 24eec67a46
3 changed files with 95 additions and 0 deletions
@@ -3,6 +3,7 @@ package dev.coph.flightscore.backend;
import dev.coph.flightscore.backend.config.Config; import dev.coph.flightscore.backend.config.Config;
import dev.coph.flightscore.backend.provider.ProviderManager; import dev.coph.flightscore.backend.provider.ProviderManager;
import dev.coph.flightscore.backend.requestHandler.auth.LoginRequestHandler; 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.requestHandler.auth.RegisterRequestHandler;
import dev.coph.flightscore.backend.user.UserProvider; import dev.coph.flightscore.backend.user.UserProvider;
import dev.coph.flightscore.backend.user.permission.PermissionProvider; import dev.coph.flightscore.backend.user.permission.PermissionProvider;
@@ -80,6 +81,7 @@ public class Backend {
logger.info("Loading routes..."); logger.info("Loading routes...");
webServer.registerRequestHandler(new LoginRequestHandler(this)); webServer.registerRequestHandler(new LoginRequestHandler(this));
webServer.registerRequestHandler(new RegisterRequestHandler(this)); webServer.registerRequestHandler(new RegisterRequestHandler(this));
webServer.registerRequestHandler(new RefreshRequestHandler(this));
logger.success("Routes loaded!"); logger.success("Routes loaded!");
@@ -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);
}
}
+26
View File
@@ -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: []