package emu.grasscutter.auth; import emu.grasscutter.auth.AuthenticationSystem.AuthenticationRequest; /** Handles authentication via OAuth routes. */ public interface OAuthAuthenticator { /** * Called when an OAuth login request is made. * * @param request The authentication request. */ void handleLogin(AuthenticationRequest request); /** * Called when a client requests to redirect to login page. * * @param request The authentication request. */ void handleRedirection(AuthenticationRequest request, ClientType clientType); /** * Called when an OAuth login requests callback. * * @param request The authentication request. */ void handleTokenProcess(AuthenticationRequest request); /** The type of the client. Used for handling redirection. */ enum ClientType { DESKTOP, MOBILE } }