Go。
这个主题下的 18 篇记录。
记录一次Go打包Docker镜像的问题
在Linux环境下编译好Go源文件以后我尝试将最后的可执行文件复制到Docker镜像alpine中。 这是一个最简单的Go Web代码 以及对应的Dockerfile 在最后运行容器时始终出现了file not found的警告,容器一直启动失败,我尝试通过exec进入到容器内部查看文件,发现文件确
『Go』在Go中使用JWT
什么是JWT JWT即JSON Web Token,工作机制是在用户通过鉴权之后,服务端发送一个JSON作为凭证给客户端,让客户端又权限可以访问一些资源 JWT 的三个部分依次如下。 我们需要注意的是Payload中的数据不会被加密,所以不要存放重要 签名保存在服务端,是绝对不可泄露的 最后,服务器
(十五)密码加密和jwt认证
开始前的准备 开始编码 密码加密 pkg/hash/hash.go 这里要注意的是BcryptCheck()函数的参数位置不能错误,否则函数将无法正常运行 添加钩子函数 app/models/user/userhooks.go 这里我们使用了gorm的钩子函数,注意参数和函数名都不要出错 验证密码
(十四)邮箱发送验证码
开始前的准备 - 发送邮箱验证码时请确保开启MailHog 开始编码 整体逻辑和手机发送短信差不多 接受前端数据 app/requests/signuprequest.go 控制器 注册路由 测试
(十三)手机号发送短信验证码
开始前的准备 编码开始 接受前端数据 app/requests/signuprequest.go 从前端接受到数据,为了满足我们的自定义需求,我们需要自己来拓展验证包 自定义规则 app/requests/validators/customrules.go 自定义验证器 app/requests/v
(十二)用邮件来发送验证码
开始前的准备 我们用mailhog来作为邮箱服务器 - SMTP端口:1025 - 网页端口:8025 我们再powershell使用MailHog命令开启服务 编码 封装mail包 我们依然先去封装mail包 pkg/mail/driverinterface.go pkg/mail/drivers
(十一)利用阿里云平台发送短信
开始前的准备 开始编码 封装sms pkg/sms/driverinterface.go pkg/sms/driveraliyun.go pkg/sms/sms.go 我们先把阿里云的sms包封装成一个Send函数 验证手机验证码 在这里值得一提的是,我们要注意在整个用手机发送短信的过程中,有两个不
(九)使用redis和captcha
开始前的准备 开始编码 redis包 pkg/redis/redis.go 我们对redis包中的redis函数进行了封装并且添加了日志 redis的配置 config/redis.go captcha包 base64Captcha内置了一个内存储存,但是这并不方便,我们用redis实现它的储存接口
(八)在gin和gorm中使用zap
开始前的准备 gin整合zap 还记得我们在gin中自定义中间件的函数吗,我们将自定义中间件并整合zap来代替原来的中间件 bootstrap/route.go 接下来的内容涉及到的内容很多,只需要理解大概即可,所以这一部分的讲解只会介绍大概的思路。 logger中间件 app/http/middl
(五)完成验证手机和邮箱是否存在接口
开始前的准备 简单好用的go验证包,可以自定义验证规则和错误信息 创建controller app/http/controllers/api/v1/baseapicontroller.go 和前面一样,先创建一个Controller基类 app/http/controllers/api/v1/aut
(三)集成viper
开始前的准备 - viper viper是一个相当常用的配置管理包,功能相当强大。但是如果之前没有接触过这个包,第一次学习可能感到疑惑,你可以根据自己的情况去先学习viper的用法或者保持一定的疑惑。 - cast 一个非常方便的类型转换包 编码 编写viper工具包 pkg/config/co
(一)项目基础信息和说明
所需要的Go语言基础 这并不是一个完全零基础的Go语言Web项目教程,你需要对包括但不限于gin,gorm等常用框架有一定的了解。此外,如果你之前有过其它语言的Web开发经验,那么我相信你也可以很快学会这些内容。如果没有这些基础,你可以跟着本教程做下去,我们会在每一部分的练习中写上所需要的基础,你可