feat(auth): Complete Auth Service implementation and fix Consul health checks
- Add VerifyPassword RPC to Identity Service - Added to proto file and generated code - Implemented in Identity Service gRPC server - Added to Identity Service client interface and gRPC client - Complete RefreshToken implementation - Store refresh tokens in database using RefreshToken entity - Validate refresh tokens with expiration checking - Revoke refresh tokens on logout and token rotation - Integrate Authz Service for role retrieval - Added AuthzServiceClient to Auth Service - Get user roles during login and token refresh - Gracefully handle Authz Service failures - Require JWT secret in configuration - Removed default secret fallback - Service fails to start if JWT secret is not configured - Fix Consul health checks for Docker - Services now register with Docker service names (e.g., audit-service) - Allows Consul (in Docker) to reach services via Docker DNS - Health checks use gRPC service names instead of localhost This completes all TODOs in auth_service_fx.go and fixes the Consul health check failures in Docker environments.
This commit is contained in:
@@ -355,6 +355,26 @@ func (s *identityServerImpl) ResetPassword(ctx context.Context, req *identityv1.
|
||||
return &identityv1.ResetPasswordResponse{Success: true}, nil
|
||||
}
|
||||
|
||||
// VerifyPassword verifies a user's password.
|
||||
func (s *identityServerImpl) VerifyPassword(ctx context.Context, req *identityv1.VerifyPasswordRequest) (*identityv1.VerifyPasswordResponse, error) {
|
||||
u, err := s.service.verifyPassword(ctx, req.Email, req.Password)
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Unauthenticated, "invalid credentials: %v", err)
|
||||
}
|
||||
return &identityv1.VerifyPasswordResponse{
|
||||
User: &identityv1.User{
|
||||
Id: u.ID,
|
||||
Email: u.Email,
|
||||
Username: u.Username,
|
||||
FirstName: u.FirstName,
|
||||
LastName: u.LastName,
|
||||
EmailVerified: u.Verified,
|
||||
CreatedAt: u.CreatedAt.Unix(),
|
||||
UpdatedAt: u.UpdatedAt.Unix(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// provideIdentityService creates the identity service and gRPC server.
|
||||
func provideIdentityService() fx.Option {
|
||||
return fx.Options(
|
||||
|
||||
Reference in New Issue
Block a user