login_api.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * @description: api 登陆接口相关
  3. * @Author: CP
  4. * @Date: 2020-09-17 16:23:02
  5. * @FilePath: \construction_management\web\api\login_api.go
  6. */
  7. package api
  8. import (
  9. "fmt"
  10. "github.com/kataras/iris/v12"
  11. "go.mod/services"
  12. "go.mod/web/utils"
  13. )
  14. type LoginApi struct {
  15. //框架-web应用上下文环境
  16. Ctx iris.Context
  17. // 需要用的service
  18. ServiceProjectAccount services.ProjectAccountService
  19. ServiceLogin services.LoginService
  20. }
  21. // func (c *LoginApi) Get() {
  22. // token := jwt.NewTokenWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
  23. // // 根据需求,可以存一些必要的数据
  24. // "userName": "JabinGP",
  25. // "userId": "1",
  26. // "admin": true,
  27. // // 签发人
  28. // "iss": "iris",
  29. // // 签发时间
  30. // "iat": time.Now().Unix(),
  31. // // 设定过期时间,便于测试,设置1分钟过期
  32. // "exp": time.Now().Add(1 * time.Minute * time.Duration(1)).Unix(),
  33. // })
  34. // // 使用设置的秘钥,签名生成jwt字符串
  35. // tokenString, _ := token.SignedString([]byte(conf.SignSecret))
  36. // // 返回
  37. // c.Ctx.JSON(tokenString)
  38. // }
  39. //登陆
  40. func (c *LoginApi) Post() {
  41. ErrMsg := ""
  42. Code := -1
  43. //验证规则
  44. LoginData, err := c.ServiceLogin.ValidRule(c.Ctx)
  45. if err != nil {
  46. ErrMsg = utils.FormValidError(err)
  47. } else {
  48. //验证登陆用户
  49. err = c.ServiceLogin.ValidProjectAccount(LoginData, c.Ctx.ResponseWriter())
  50. if err != nil {
  51. ErrMsg = fmt.Sprintf("%s", err)
  52. } else {
  53. //验证通关
  54. Code = 0
  55. // c.Ctx.JSON(iris.Map{
  56. // "code": 200,
  57. // "msg": ErrMsg,
  58. // })
  59. }
  60. }
  61. c.Ctx.JSON(iris.Map{
  62. "code": Code,
  63. "msg": ErrMsg,
  64. })
  65. // return mvc.View{
  66. // Name: "login/login.html",
  67. // Data: iris.Map{
  68. // "Title": "用户登录",
  69. // "Channel": "login",
  70. // "Action": "login",
  71. // "LoginData": LoginData,
  72. // "ErrMsg": ErrMsg,
  73. // },
  74. // Layout: "login/layout.html",
  75. // }
  76. }