github.com/infraboard/keyauth@v0.8.1/apps/verifycode/impl/impl.go (about) 1 package impl 2 3 import ( 4 "context" 5 6 "github.com/infraboard/mcube/app" 7 "github.com/infraboard/mcube/logger" 8 "github.com/infraboard/mcube/logger/zap" 9 "go.mongodb.org/mongo-driver/mongo" 10 "go.mongodb.org/mongo-driver/x/bsonx" 11 "google.golang.org/grpc" 12 13 "github.com/infraboard/keyauth/apps/system" 14 "github.com/infraboard/keyauth/apps/token" 15 "github.com/infraboard/keyauth/apps/token/issuer" 16 "github.com/infraboard/keyauth/apps/user" 17 "github.com/infraboard/keyauth/apps/verifycode" 18 "github.com/infraboard/keyauth/conf" 19 ) 20 21 var ( 22 // Service 服务实例 23 svr = &service{} 24 ) 25 26 type service struct { 27 col *mongo.Collection 28 issuer issuer.Issuer 29 system system.Service 30 log logger.Logger 31 user user.ServiceServer 32 token token.ServiceServer 33 34 verifycode.UnimplementedServiceServer 35 } 36 37 func (s *service) Config() error { 38 db := conf.C().Mongo.GetDB() 39 col := db.Collection("verify_code") 40 41 indexs := []mongo.IndexModel{ 42 { 43 Keys: bsonx.Doc{{Key: "create_at", Value: bsonx.Int32(-1)}}, 44 }, 45 } 46 47 _, err := col.Indexes().CreateMany(context.Background(), indexs) 48 if err != nil { 49 return err 50 } 51 s.col = col 52 53 s.system = app.GetInternalApp(system.AppName).(system.Service) 54 s.user = app.GetGrpcApp(user.AppName).(user.ServiceServer) 55 s.token = app.GetGrpcApp(token.AppName).(token.ServiceServer) 56 57 is, err := issuer.NewTokenIssuer() 58 if err != nil { 59 return err 60 } 61 s.issuer = is 62 s.log = zap.L().Named("Verify Code") 63 return nil 64 } 65 66 func (s *service) Name() string { 67 return verifycode.AppName 68 } 69 70 func (s *service) Registry(server *grpc.Server) { 71 verifycode.RegisterServiceServer(server, svr) 72 } 73 74 func init() { 75 app.RegistryGrpcApp(svr) 76 }