Go的HTTP验证码
思路
Go 语言的 HTTP 服务器默认不支持 Session,因此验证码值需要换个思路存储,以下是不使用 Session 的逻辑
- 客户端请求服务器获取验证码ID
- 服务器生成验证码 ID,并生成验证码值,将 ID 和值的映射关系记录到内存或缓存,并将 ID 返回给客户端
- 客户端根据返回的 ID 请求服务器获取验证码图片
- 服务器获取到验证码 ID,从内存或缓存中取出验证码值,将该值写入图片并将图片返回给客户端
- 客户端提交验证码 ID(第1步获得)和验证码值给服务器验证
- 服务器获取验证码 ID,从内存或缓存中取出验证码值与客户端提交的验证码值比对
示例
- 安装验证码依赖
1 |
|
- 代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
运行
- 访问/captcha/generate获得验证码 ID
- 访问/captcha/image?id=验证码 ID
- 访问/login,并输入第一步的验证码 ID 和第二步的验证码值即可查看验证结果
项目地址
https://github.com/xialeistudio/go-http-captcha-example
以上就是分享一个Golang Http 验证码示例的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《golang》频道 >>
Go语言101
一个与时俱进的Go编程知识库。