You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

72 lines
1.6 KiB

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
}