Class LoginServiceGrpc
java.lang.Object
com.soulfiremc.grpc.generated.LoginServiceGrpc
Service for authenticating users via email-based passwordless login. Authentication Flow: 1. Client calls Login with the user's email address 2. If the email is registered, a six-digit code is sent to that email 3. Client receives an auth_flow_token and EmailCode response 4. User enters the code from their email 5. Client calls EmailCode with the auth_flow_token and the code 6. If valid, client receives a JWT token; if invalid, receives a Failure Security Features: - Rate limited to 20 requests per 10 minutes per origin to prevent brute force attacks - Auth flow tokens expire after 15 minutes - Same response for registered and unregistered emails to prevent email enumeration - Invalid codes return the same error as expired/invalid flow tokens to prevent timing attacks Error Handling: - RESOURCE_EXHAUSTED: Rate limit exceeded (too many login attempts) - UNAUTHENTICATED: No origin header provided (required for rate limiting) - INTERNAL: Unexpected server error during processing
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceService for authenticating users via email-based passwordless login.static final classA stub to allow clients to do limited synchronous rpc calls to service LoginService.static final classA stub to allow clients to do synchronous rpc calls to service LoginService.static final classA stub to allow clients to do ListenableFuture-style rpc calls to service LoginService.static classBase class for the server implementation of the service LoginService.static final classA stub to allow clients to do asynchronous rpc calls to service LoginService. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic final io.grpc.ServerServiceDefinitionbindService(LoginServiceGrpc.AsyncService service) static io.grpc.MethodDescriptor<EmailCodeRequest, NextAuthFlowResponse> static io.grpc.MethodDescriptor<LoginRequest, NextAuthFlowResponse> static io.grpc.ServiceDescriptornewBlockingStub(io.grpc.Channel channel) Creates a new blocking-style stub that supports unary and streaming output calls on the servicenewBlockingV2Stub(io.grpc.Channel channel) Creates a new blocking-style stub that supports all types of calls on the servicenewFutureStub(io.grpc.Channel channel) Creates a new ListenableFuture-style stub that supports unary calls on the servicenewStub(io.grpc.Channel channel) Creates a new async stub that supports all call types for the service
-
Field Details
-
SERVICE_NAME
- See Also:
-
-
Method Details
-
getLoginMethod
-
getEmailCodeMethod
-
newStub
Creates a new async stub that supports all call types for the service -
newBlockingV2Stub
public static LoginServiceGrpc.LoginServiceBlockingV2Stub newBlockingV2Stub(io.grpc.Channel channel) Creates a new blocking-style stub that supports all types of calls on the service -
newBlockingStub
Creates a new blocking-style stub that supports unary and streaming output calls on the service -
newFutureStub
Creates a new ListenableFuture-style stub that supports unary calls on the service -
bindService
public static final io.grpc.ServerServiceDefinition bindService(LoginServiceGrpc.AsyncService service) -
getServiceDescriptor
public static io.grpc.ServiceDescriptor getServiceDescriptor()
-