Files
Grasscutter/src/main/java/emu/grasscutter/auth/HandbookAuthenticator.java
T
2023-05-16 02:38:01 -04:00

35 lines
1.1 KiB
Java

package emu.grasscutter.auth;
import emu.grasscutter.auth.AuthenticationSystem.AuthenticationRequest;
import lombok.Builder;
import lombok.Getter;
/** Handles player authentication for the web GM handbook. */
public interface HandbookAuthenticator {
@Getter @Builder
class Response {
private final int status;
private final String body;
}
/**
* Invoked when the user requests to authenticate.
* This should respond with a page that allows the user to authenticate.
*
* @route GET /handbook/authenticate
* @param request The authentication request.
*/
void presentPage(AuthenticationRequest request);
/**
* Invoked when the user requests to authenticate.
* This is called when the user submits the authentication form.
* This should respond with HTML that sends a message to the GM Handbook.
* See the default handbook authentication page for an example.
*
* @param request The authentication request.
* @return The response to send to the client.
*/
Response authenticate(AuthenticationRequest request);
}