Added auth refresh endpoint
This commit is contained in:
@@ -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!");
|
||||||
|
|
||||||
|
|||||||
+67
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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: []
|
||||||
Reference in New Issue
Block a user