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.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!");
|
||||
|
||||
|
||||
+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