package main

import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
) type LoginForm struct {
// form:"user" 表示前端提交form表单时User对应的key的名称为:user
// binding: "required" required表示前端必须传入该键才可以
User string `form:"user" binding:"required"`
Password string `form:"password" binding:"required"`
} func main() {
router := gin.Default()
router.POST("/login", func(c *gin.Context) {
var form LoginForm
// 你可以使用显示绑定声明绑定 multipart form
//if err := c.ShouldBindWith(&form, binding.Form); err == nil {
// 先校验用户传参是否符合LoginForm的校验约束
// 或者简单的使用ShouldBind方法自动绑定,在这种情况下将自动选择合适的绑定
if err := c.ShouldBind(&form); err == nil {
// 在校验传入的用户名密码是否正确
if form.User == "user" && form.Password == "password" {
c.JSON(http.StatusOK, gin.H{"status": "you are logged int"})
} else {
c.JSON(http.StatusUnauthorized, gin.H{"status": "Unauthorized"})
}
} else {
fmt.Println(err)
c.JSON(http.StatusBadRequest, gin.H{"key": "key error"})
}
})
router.Run()
}

  

最新文章

  1. STL库中的正态分布函数
  2. 慕课网-Java入门第一季-6-9
  3. 计算机病毒实践汇总四:netcat使用方法
  4. 详解Bootstrap进度条组件
  5. D&F学数据结构系列——二叉排序树
  6. nsDATA 转结构体
  7. 内存中的static、const实现形式
  8. oracle删掉重复数据的语法
  9. CentOS下MySQL无法正常启动错误
  10. Hash表的扩容(转载)
  11. 对redux的理解
  12. RabbitMQ 笔记-RPC
  13. NightWatch端到端测试
  14. Yarn任务提交流程(源码分析)
  15. Bootstrap学习(一):Bootstrap简介
  16. 注意兼容浮点运算误差 0.7 + 0.1 ==0.8 为false
  17. chrome浏览器的SwitchyOmega插件使用方法
  18. day22-python操作mysql2
  19. 较老版本 AFNetworking 使用心得
  20. iOS 开发-Certificate、App ID和Provisioning Profile之间的关系

热门文章

  1. 【LeetCode】101. Symmetric Tree 对称二叉树(Java & Python)
  2. 【LeetCode】910. Smallest Range II 解题报告(Python & C++)
  3. 【LeetCode】43. Multiply Strings 解题报告(Python & C++)
  4. MySQL中视图的定义、原理--触发器
  5. RabbitMQ学习笔记二:Java实现RabbitMQ
  6. 【C#】C#中使用GDAL3(三):Windows下编译插件驱动
  7. 项目启动报错怎么办?看看你Spring自动注入用对了嘛?@Autowired XxxService注入问题解决
  8. 编写Java程序,创建一个 XML 文档,文档名为“hero.xml”,用于保存“王者荣耀”的英雄信息。
  9. 编写Java程序,使用JFrame创建一个窗体
  10. Ranger知识地图