userService.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package service
  2. import (
  3. "bytes"
  4. "encoding/base64"
  5. "github.com/gin-gonic/gin"
  6. "github.com/google/uuid"
  7. "iot_manager_service/util/cache"
  8. "iot_manager_service/util/rsa"
  9. "iot_manager_service/util/token"
  10. "strconv"
  11. //"github.com/google/uuid"
  12. "gorm.io/gorm"
  13. "iot_manager_service/app/user/dao"
  14. "iot_manager_service/util/common"
  15. //"iot_manager_service/util/rsa"
  16. //"iot_manager_service/util/token"
  17. //"strconv"
  18. )
  19. // 用户管理服务
  20. var UserService = new(userService)
  21. type userService struct{}
  22. func (s *userService) Login(acc string, pwd string) *common.Errors {
  23. userdao := &dao.User{}
  24. user, err := userdao.LoginFindAccount(acc)
  25. if err != nil {
  26. if err == gorm.ErrRecordNotFound {
  27. return common.ParamsInvalidResponse("很抱歉,由于您的账号未完成注册或已被禁用,暂时无法使用。", nil)
  28. }
  29. return common.FailResponse(err.Error(), nil)
  30. }
  31. //加密
  32. //encryption := rsa.Encryption([]byte("123456"))
  33. //base64.StdEncoding.EncodeToString(encryption))
  34. //解密前端密文
  35. a, _ := base64.StdEncoding.DecodeString(pwd)
  36. client := rsa.Decryption(a)
  37. //解密数据库密文
  38. b, _ := base64.StdEncoding.DecodeString(user.Password)
  39. mysql := rsa.Decryption(b)
  40. if !bytes.Equal(client, mysql) {
  41. return common.ParamsInvalidResponse("密码错误", err)
  42. }
  43. //登录成功则生成token
  44. UUID := uuid.New().String()
  45. USERID := strconv.Itoa(user.ID)
  46. jwtToken, _ := token.JwtClaims.CreateJwtToken(USERID, user.UserName, UUID)
  47. cache.SetToken(USERID, UUID)
  48. return common.SuccessResponse("登录成功", gin.H{"token": jwtToken})
  49. }
  50. func (s *userService) GetPublicKey() *common.Errors {
  51. pub, err := rsa.GetPubKey()
  52. if err != nil {
  53. return common.FailResponse(err.Error(), nil)
  54. }
  55. return common.SuccessResponse("获取公钥成功", gin.H{"publicKey": pub})
  56. }