auth.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package handler
  2. import (
  3. "context"
  4. "dashoo.cn/common_definition/admin/user_def"
  5. "dashoo.cn/common_definition/comm_def"
  6. "dashoo.cn/micro/app/common/gtoken"
  7. "dashoo.cn/opms_libary/micro_srv"
  8. "github.com/gogf/gf/encoding/gjson"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/os/glog"
  11. "github.com/gogf/gf/util/gconv"
  12. "dashoo.cn/common_definition/auth"
  13. )
  14. type Auth struct{}
  15. var gfToken *gtoken.GfToken
  16. func init() {
  17. // 启动gtoken
  18. gfToken = &gtoken.GfToken{
  19. Timeout: 24 * 60 * 60 * 1000, // 24小时
  20. EncryptKey: []byte(g.Config().GetString("gtoken.encrypt-key")),
  21. CacheMode: g.Config().GetInt8("gtoken.cache-mode"),
  22. MultiLogin: g.Config().GetBool("gtoken.multi-login"),
  23. }
  24. gfToken.Start()
  25. }
  26. // Login 用户登录验证
  27. func (e *Auth) Login(ctx context.Context, req *user_def.LoginReq, rsp *comm_def.CommonMsg) error {
  28. // 参数验证
  29. if req.UserName == "" || req.Password == "" {
  30. return NoParamsErr
  31. }
  32. //userService, err := service.NewUserService(ctx)
  33. //if err != nil {
  34. // g.Log().Error(err)
  35. // return gerror.New("系统异常,请重新尝试")
  36. //}
  37. //userInfo, err := userService.Login(ctx, tenant, req.UserName, pridecrypt)
  38. //_, err, code, msg := myerrors.CheckError(err)
  39. //if err != nil {
  40. // glog.Error(err)
  41. // return err
  42. //}
  43. //rsp.Data = userInfo
  44. //rsp.Code = code
  45. //rsp.Msg = msg
  46. return nil
  47. }
  48. // LogOut 退出登录
  49. func (e *Auth) LogOut(ctx context.Context, req interface{}, rsp *comm_def.CommonMsg) error {
  50. if token, err := micro_srv.GetToken(ctx); err != nil {
  51. return err
  52. } else if token == "" {
  53. return NoParamsErr
  54. }
  55. //userService, err := service.NewUserService(ctx)
  56. //if err != nil {
  57. // g.Log().Error(err)
  58. // return gerror.New("系统异常,请重新尝试")
  59. //}
  60. //err = userService.LogOut(ctx, token)
  61. //_, err, code, msg := myerrors.CheckError(err)
  62. //if err != nil {
  63. // glog.Error(err)
  64. // return err
  65. //}
  66. //rsp.Code = code
  67. //rsp.Msg = msg
  68. return nil
  69. }
  70. func (e *Auth) GetToken(ctx context.Context, req *auth.Request, rsp *auth.Response) (err error) {
  71. glog.Info("Received Auth.GetToken request, UserKey:", req.UserKey, " @ ", req.Tenant)
  72. // 获取Data,换成对象
  73. var json interface{}
  74. if req.Data != "" {
  75. json, err = gjson.DecodeToJson(req.Data)
  76. if err != nil {
  77. return err
  78. }
  79. }
  80. tokenResp := gfToken.GetOrGenToken(req.Tenant, req.UserKey, req.Uuid, json)
  81. if err := gconv.Struct(tokenResp, rsp); err != nil {
  82. return err
  83. }
  84. glog.Info(tokenResp.DataString())
  85. return nil
  86. }
  87. func (e *Auth) RemoveToken(ctx context.Context, reqToken string, rsp *auth.Response) error {
  88. glog.Info("Received Auth.RemoveToken request, token:", reqToken)
  89. tokenResp := gfToken.RemoveToken(reqToken)
  90. if err := gconv.Struct(tokenResp, rsp); err != nil {
  91. return err
  92. }
  93. return nil
  94. }
  95. func (e *Auth) ValidToken(ctx context.Context, reqToken string, rsp *auth.Response) error {
  96. glog.Info("Received Auth.ValidToken request, token:", reqToken)
  97. tokenResp := gfToken.ValidToken(reqToken)
  98. if err := gconv.Struct(tokenResp, rsp); err != nil {
  99. return err
  100. }
  101. return nil
  102. }