github.com/infraboard/keyauth@v0.8.1/apps/session/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/ip2region" 14 "github.com/infraboard/keyauth/apps/session" 15 "github.com/infraboard/keyauth/apps/token" 16 "github.com/infraboard/keyauth/conf" 17 ) 18 19 var ( 20 // Service 服务实例 21 svr = &service{} 22 ) 23 24 type service struct { 25 col *mongo.Collection 26 27 ip ip2region.Service 28 token token.ServiceServer 29 log logger.Logger 30 session.UnimplementedServiceServer 31 } 32 33 func (s *service) Config() error { 34 s.ip = app.GetInternalApp(ip2region.AppName).(ip2region.Service) 35 s.token = app.GetGrpcApp(token.AppName).(token.ServiceServer) 36 37 db := conf.C().Mongo.GetDB() 38 dc := db.Collection("session") 39 40 indexs := []mongo.IndexModel{ 41 { 42 Keys: bsonx.Doc{{Key: "account", Value: bsonx.Int32(-1)}}, 43 }, 44 { 45 Keys: bsonx.Doc{{Key: "login_at", Value: bsonx.Int32(-1)}}, 46 }, 47 } 48 49 _, err := dc.Indexes().CreateMany(context.Background(), indexs) 50 if err != nil { 51 return err 52 } 53 54 s.col = dc 55 s.log = zap.L().Named("Session") 56 return nil 57 } 58 59 func (s *service) Name() string { 60 return session.AppName 61 } 62 63 func (s *service) Registry(server *grpc.Server) { 64 session.RegisterServiceServer(server, svr) 65 } 66 67 func init() { 68 app.RegistryGrpcApp(svr) 69 }