Skip to main content

Login Microservice

The Login microservice handles authentication and session management, including login, OTP verification, session handling, and password reset flows.

Models (login.go)

Login

Tracks login sessions of users.

FieldTypeDescription
IDuint32Unique login record ID
UserIDuint32ID of the user who logged in
SessionIDstringUnique session identifier
LoginTimetime.TimeTimestamp of login
LogoutTimetime.TimeTimestamp of logout

Reset

Holds password reset request details.

FieldTypeDescription
IDuint32Unique reset record ID
EmailstringUser's email address
OTPuint32One-time password sent for reset
ExpireAttime.TimeOTP expiration timestamp

Session

Manages OTP-based session verification.

FieldTypeDescription
IDuint32Session record ID
SessionIDstringUnique session ID
OTPuint32OTP sent to user
LoginIDuint32Associated login record ID
ExpireAttime.TimeExpiration of this session

gRPC API (login.proto)

Defines the contract for login, OTP, session management, and password reset.

Key Messages

  • LoginRequest: User credentials (username and password).
  • LogoutRequest: Contains token to terminate the session.
  • User: Detailed user info (ID, role, org, contact, etc.).
  • TokenResponse: Token and user data returned after successful login or OTP verification.
  • SessionIDResponse: Returned after successful login, before OTP.
  • LogoutResponse: Confirmation of logout.
  • SessionResponse: Retrieves user ID and expiration from a session ID.
  • OtpRequest: Session ID and OTP for second-factor login.
  • ResetRequest: Request to initiate password reset.
  • ResetValidateRequest: Validate OTP for reset flow.
  • CheckResponse: Generic boolean response to indicate success or validation result.

Services

  • Login(LoginRequest) returns (SessionIDResponse): Begins the login process.
  • Otp(OtpRequest) returns (TokenResponse): Validates OTP and returns token.
  • Reset(ResetRequest) returns (CheckResponse): Sends reset OTP to email.
  • ResetValidate(ResetValidateRequest) returns (CheckResponse): Verifies OTP during password reset.
  • Logout(LogoutRequest) returns (LogoutResponse): Logs out the user.
  • GetUserIDBySessionID(GetUserIDBySessionIdRequest) returns (SessionResponse): Gets user info from session.