auth_proc.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package model
  2. import (
  3. "rocommon"
  4. "rocommon/rpc"
  5. "rocommon/service"
  6. "rocommon/util"
  7. "roserver/baseserver/model"
  8. "roserver/serverproto"
  9. )
  10. const (
  11. PlatformOpenIdConnectInfoPrefix = "pp_conn_" //openid对应的连接信息
  12. )
  13. // 透传给client
  14. func LoginRet(ev rocommon.ProcEvent, ret int32) {
  15. loginAck := &serverproto.SCLoginAck{
  16. Error: ret,
  17. }
  18. model.ServiceReplay(ev, loginAck)
  19. }
  20. // sdk返回以后的透传client操作
  21. func LoginRetSDK(session rocommon.Session, clientId uint64, ret int32) {
  22. loginAck := &serverproto.SCLoginAck{
  23. Error: ret,
  24. }
  25. data, info, err := rpc.EncodeMessage(loginAck)
  26. if err != nil {
  27. util.ErrorF("replay msg encode err=%v", err)
  28. return
  29. }
  30. //透传给gate服务器,然后再发送给客户端
  31. session.Send(&serverproto.ServiceTransmitAck{
  32. MsgId: uint32(info.ID),
  33. MsgData: data,
  34. ClientId: clientId,
  35. })
  36. }
  37. func checkOpenIdValid(openId string) bool {
  38. if openId == "" {
  39. return false
  40. }
  41. return true
  42. }
  43. func checkServerStatus() int32 {
  44. return int32(serverproto.ErrorCode_ERROR_OK)
  45. }
  46. func initUserConnInfo(connInfo *serverproto.UserConnectInfo, openId, platform string) bool {
  47. // 区分不同平台
  48. openId = model.ConvertPlatform(openId, platform)
  49. keyStr := PlatformOpenIdConnectInfoPrefix + openId
  50. ret, err := service.GetRedis().Exists(keyStr).Result()
  51. if err != nil && err != service.NIL {
  52. util.InfoF("initUserConnInfo openid=%v err=%v", openId, err)
  53. return false
  54. }
  55. if ret != 0 {
  56. err := model.GetMessageFromRedis(PlatformOpenIdConnectInfoPrefix, openId, connInfo)
  57. if err != nil {
  58. util.WarnF("initUserConnInfo openid=%v err=%v", openId, err)
  59. return false
  60. }
  61. }
  62. return true
  63. }
  64. func saveUserConnInfo(connInfo *serverproto.UserConnectInfo, openId, platform string) {
  65. // 区分不同平台
  66. openId = model.ConvertPlatform(openId, platform)
  67. err := model.SetMessageToRedis(PlatformOpenIdConnectInfoPrefix, openId, connInfo)
  68. if err != nil {
  69. util.WarnF("[initUserConnInfo] save userConnectionInfo err:%v", err)
  70. }
  71. }
  72. func checkAuthMode(activeCode string) {
  73. }