Go 语言web 框架 Gin 练习3
目录
文章目录
- 1 介绍
- 2 练习
- 友情援助
1 介绍
Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错
借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范.
2 练习
本次练习主要在上一次代码的基础上进行了进一步的优化,
加入了注册接口。
func CollectRouter(r *gin.Engine) *gin.Engine {r.POST("/api/auth/register", Controller.Register)r.POST("/api/auth/login", Controller.Login)return r
}
添加了
r.POST("/api/auth/login", Controller.Login)
具体实现函数如下,
func Login(ctx *gin.Context) {//获取参数DB := common.GetDB()telephone := ctx.PostForm("telephone")password := ctx.PostForm("password")//数据验证if len(telephone) != 11 {ctx.JSON(http.StatusUnprocessableEntity,gin.H{"code": 422, "msg": "手机号必须为11位"})return}if len(password) < 6 || len(password) > 11 {ctx.JSON(http.StatusUnprocessableEntity,gin.H{"code": 422, "msg": "密码必须大于6位且小于11位"})return}//手机号判断var user Model.UserDB.Where("telephone=?", telephone).First(&user)if user.ID == 0 {ctx.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422,"msg": "用户不存在"})return}//判断密码正确?if err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password)); err != nil {ctx.JSON(http.StatusBadRequest, gin.H{"code": 400, "msg": "密码错误"})return}//发放tokentoken := "11"//返回结果ctx.JSON(200, gin.H{"code": 200,"data": gin.H{"token": token},"msg": "登陆成功",})}
额外增加的还有
//密码加密hashPD, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)if err != nil {ctx.JSON(http.StatusInternalServerError,gin.H{"code": 500, "msg": "加密错误"})return}//创建用户newUser := Model.User{Name: name,Telephone: telephone,Password: string(hashPD),}db.Create(&newUser)
对存储的密码进行了加密,而不是直接使用用户的明文密码。
友情援助
有问题的可以关注公众号,博主会在24小时内回复。
Go 语言web 框架 Gin 练习3相关推荐
- Go语言web框架 gin
Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh-.看着不错的样子, 所 ...
- Go语言web框架——Gin
文章目录 Gin 1 Web工作流程 2 Gin 框架 2.1 Hello World engine.Run() 2.2 gin.Engine gin.Default() 2.3 路由与控制器 2.3 ...
- Go 语言web 框架 Gin 练习8
目录 文章目录 1 介绍 2 练习 友情援助 1 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依 ...
- Go 语言web 框架 Gin 练习 7
目录 文章目录 1 介绍 2 练习 友情援助 1 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依 ...
- Go 语言web 框架 Gin 练习6
目录 文章目录 1 介绍 2 练习 结果展示 友情援助 1 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,we ...
- Go 语言web 框架 Gin 练习5
目录 文章目录 1 介绍 2 练习 友情援助 1 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依 ...
- Go 语言web 框架 Gin 练习4
目录 文章目录 1 介绍 2 练习 友情援助 1 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依 ...
- 干货分享:六个知名的Go语言web框架
框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了.成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应 ...
- go web框架_干货分享:六个知名的Go语言web框架
框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了.成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应 ...
最新文章
- centos6.4安装java,CentOS6.4下YUM安装MySQL和JDK和Tomcat
- 为什么C++(感谢waterwalk翻译)
- reuse project css less path folder hierarchy issue
- Python中出现“TabError: inconsistent use of tabs and spaces in indentation”
- android之统一字体大小
- Hibernate 中 set 里的属性及定义
- MySQL数据库的主键和外键详解
- XCap for Mac(数位显微镜助手)
- 华南金牌x79支持服务器内存吗,迟来的评测:华南 金牌X79 主板,值不值得买?...
- 数学建模常见算法:插值算法
- java实现与图灵机器人聊天_调用图灵机器人API实现简单聊天
- ssh-hostbased配置方法
- python 批量替换当前.txt文本内容
- JavaScript (一) js的介绍及基本语法变量
- 【Docker之Swarm详细讲解Swarm集群搭建管理节点工作节点Raft一致性协议overlay网络Docker结合Swarm部署WordPress个人博客实战】
- 最短路及最短路计数(SPFA)
- win8服务器防火墙配置文件,Win8自带防火墙吗,Win8防火墙在哪里(适用于Win8.1)?
- 路由器与交换机(笑傲江湖篇)
- 哪些是不被授予专利权的客体
- 技巧:win10的另一种美化字体的方式,使用noMeiryoUI