Blame view

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