Blame view

actions/accountaction.go 1.19 KB
ee23102d   zhangqijia   支持mongo, grpc接服务器
1
2
3
4
5
6
7
8
9
10
11
  package actions
  
  import (
  	"context"
  	"fmt"
  	"pro2d/conf"
  	"pro2d/models"
  	"pro2d/protos/pb"
  	"pro2d/utils"
  )
  
563acaf7   zhangqijia   在拦截器中认证jwt
12
  func (s *LoginServer) RegisterHandler(ctx context.Context, in *pb.Register) (*pb.RegisterRsp, error) {
3592dfd3   zhangqijia   重构models, 索引唯一索引
13
  	ok, account := models.AccountExistByPhone(in.Phone)
ee23102d   zhangqijia   支持mongo, grpc接服务器
14
15
16
  	if !ok {
  		account.Phone = in.Phone
  		account.Password = utils.Md5V(in.Password)
1584eb4b   zhangqijia   修复创建唯一索引的bug
17
  		account.Uid = conf.SnowFlack.NextValStr()
ee23102d   zhangqijia   支持mongo, grpc接服务器
18
19
20
21
22
  		account.Create()
  	}else {
  		return nil, fmt.Errorf("1")
  	}
  
563acaf7   zhangqijia   在拦截器中认证jwt
23
  	return &pb.RegisterRsp{
ee23102d   zhangqijia   支持mongo, grpc接服务器
24
25
  		Code: 0,
  	}, nil
ee23102d   zhangqijia   支持mongo, grpc接服务器
26
27
  }
  
563acaf7   zhangqijia   在拦截器中认证jwt
28
  func (s *LoginServer) CreateTokenHandler(ctx context.Context, in *pb.Account) (*pb.CreateTokenRsp, error) {
1584eb4b   zhangqijia   修复创建唯一索引的bug
29
30
31
  	m := models.NewAccount(in.Phone)
  	if err := m.Load(); err != nil {
  		return &pb.CreateTokenRsp{
563acaf7   zhangqijia   在拦截器中认证jwt
32
  			Code: 1,
1584eb4b   zhangqijia   修复创建唯一索引的bug
33
34
35
36
37
  		}, nil
  	}
  
  	if m.Password != utils.Md5V(in.Password) {
  		return &pb.CreateTokenRsp{
563acaf7   zhangqijia   在拦截器中认证jwt
38
  			Code: 2,
1584eb4b   zhangqijia   修复创建唯一索引的bug
39
40
41
  		}, nil
  	}
  
286f6dbe   zhangqijia   etcd 保存服务信息
42
43
44
45
46
47
48
49
50
51
  	serverInfo := s.EtcdClient.GetByPrefix(conf.GlobalConf.GameConf.Name)
  	var gameInfo []*pb.ServiceInfo
  	for k, v := range serverInfo {
  		gameInfo = append(gameInfo, &pb.ServiceInfo{
  			Id:      k,
  			Name:    conf.GlobalConf.GameConf.Name,
  			Address: v,
  		})
  	}
  
ee23102d   zhangqijia   支持mongo, grpc接服务器
52
  	return &pb.CreateTokenRsp{
563acaf7   zhangqijia   在拦截器中认证jwt
53
54
55
  		Code: 0,
  		Uid: m.Uid,
  		Token: utils.CreateToken(m.Account),
286f6dbe   zhangqijia   etcd 保存服务信息
56
  		GameService: gameInfo,
ee23102d   zhangqijia   支持mongo, grpc接服务器
57
58
  	}, nil
  }