gin框架简单登录接口开发

1、登录接口的路由

 2、获取参数并验证参数

 3、验证手机号是否存在

4、判断密码是否正确

 

5、给前端返回token

 

6、返回结果

 

7、测试

 8、bcrypt使用对密码进行加密解密(gin自动导入包)

加密:

 解密:

 验证:

 10、总结(整体代码)

路由:

r.POST("/api/auth/login", controller.Login)

控制器代码:

func Login(c *gin.Context) {
   //引入DB
   DB := commom.GetDB()
   //   获取参数(手机号和密码)
   telephone := c.PostForm("telephone")
   password := c.PostForm("password")
   //对接受的数据进行验证
   if len(telephone) != 11 {
      c.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "手机号必须是11位"})
      return
   }
   if len(password) < 6 {
      c.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "密码不能少于6位"})
      return
   }
   // 判断手机号是否存在
   var user model.User
   DB.Where("telephone=?", telephone).First(&user)
   if user.ID == 0 {
      c.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "用户不存在"})
      return
   }
   // 判断密码是否正确
   if err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password)); err != nil {
      c.JSON(http.StatusBadRequest, gin.H{"code": 400, "msg": "密码错误"})
      return
   }
   //返回token
   token := "123"
   // 返回结果
   c.JSON(200, gin.H{
      "code": 200,
      "data": gin.H{"token": token},
      "msg":  "登录成功",
   })

}

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值