package logic import ( "context" "errors" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "net" "sonet/api/gen/auth" "sonet/pkg/config" "sonet/pkg/grpc/discovery" "sonet/pkg/utils/logger" ) type AuthServer struct { auth.UnimplementedAuthServer } func NewAuthServer() *AuthServer { return &AuthServer{} } func (s *AuthServer) Run(conf config.GrpcConfig, register *discovery.Register) (err error) { server := grpc.NewServer( config.GetGrpcOptions(conf)..., ) if !conf.NoReflection { // 注册反射服务 reflection.Register(server) } auth.RegisterAuthServer(server, s) listen, err := net.Listen("tcp", conf.Address) if err != nil { return } // registry discovery registerConf := conf.Register if registerConf.Name == "" { registerConf.Name = auth.Auth_ServiceDesc.ServiceName } if registerConf.Addr == "" { registerConf.Addr, err = discovery.RegisterAddress(listen) if err != nil { return } } if err = register.Register(registerConf); err != nil { return } // run serve logger.Infof("%s grpc server running %s\n", registerConf.Name, listen.Addr().String()) err = server.Serve(listen) return } func (s *AuthServer) Login(ctx context.Context, req *auth.ReqLogin) (*auth.ResLogin, error) { return nil, nil } func (s *AuthServer) Verify(ctx context.Context, req *auth.ReqVerify) (*auth.Subject, error) { return &auth.Subject{Username: "sunshine"}, errors.New("test error...") } func (s *AuthServer) Registry(ctx context.Context, req *auth.ReqRegistry) (*auth.Subject, error) { return nil, nil } func (s *AuthServer) FindByUid(ctx context.Context, req *auth.ReqFindByUid) (*auth.Subject, error) { return nil, nil }