golang 基于gin框架的blog系统(3)

这篇博客主要介绍了如何使用Gin框架在Go语言中实现blog系统的登录界面、数据接口、搜索功能以及写文章的流程。登录部分涉及前端表单提交和后端接口验证,返回JSON数据包含code和data字段。搜索功能同样返回JSON数据,包含文章内容和状态码。写文章功能包括获取写作页面和文章提交,使用shouldBind方法处理请求数据,并通过jwt包处理登录验证和数据库操作。
摘要由CSDN通过智能技术生成

 4、登录界面的实现

a、实现登录界面响应:

ru.GET("/login", views.Html.Login)


func (*HTMLApi) Login(c *gin.Context) {
   c.HTML(200, "login.html", config.Cfg.Viewer)
}

b、登录数据接口实现:

登录接口的实现需要提交表单,将用户名和密码提交,需要涉及到post请求,前端提交参数的绑定必须使用shoudBind()进行绑定,否则前端提交数据无法获取。

ru.POST("/api/v1/login", api.API.Login)


func (*Api) Login(c *gin.Context) {
   //接收用户名和密码
   //返回数据

   //必须使用shouldBind获取参数  postform 不行
   userMima := models.Mima{}
   err := c.ShouldBind(&userMima)
   if err != nil {
      log.Println("从页面获取的用户参数失败")
      return
   }
   username := userMima.UserName
   passwd := userMima.Passwd

   loginRes, err := service.Login(username, passwd)
   //fmt.Println(loginRes.Usf.Uid, loginRes.Usf.UserName)
   if err != nil {
      fmt.Println("我到了这")
      var res models.Result
      res.Code = -999
      res.Error = err.Error()
      //resultJson, err := json.Marshal(res)
      //c.Set("Content-Type", "application/json")
      //if err != nil {
      // log.Println("json 序列化失败")
      // return
      //}
      c.JSON(200, gin.H{
         "code":  res.Code,
         "data":  "",
         "error": res.Error,
      })
      return
   }
   var result models.Result
   result.Code = 200
   result.Error = ""
   result.Data = loginRes
   //_, err = json.Marshal(result)
   //if err != nil {
   // log.Println("json 序列化失败")
   // return
   //}
   c.JSON(200, gin.H{
      "code":     result.Code,
      "data":     result.Data,
      "error":    result.Error,
      "userName": loginRes.UserInfo.UserName,
   })
}

登录验证后的respones由函数service.Login(username, passwd)验证,

func Login(username, passwd string) (*mod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值