当前位置: 首页 > news >正文

百度seo网站排名网站建设与运行的盈利收入

百度seo网站排名,网站建设与运行的盈利收入,装修电话,南乐网站建设费用Go验证码功能实现详解 目录结构 ├── internal │ ├── controller │ │ └── captcha │ │ └── captcha.go │ ├── logic │ │ └── captcha │ │ └── captcha.go │ └── service │ └── captcha.go1. Serv…Go验证码功能实现详解 目录结构 ├── internal │ ├── controller │ │ └── captcha │ │ └── captcha.go │ ├── logic │ │ └── captcha │ │ └── captcha.go │ └── service │ └── captcha.go1. Service层定义 (internal/service/captcha.go) package serviceimport (contextgithub.com/gogf/gf/v2/frame/g )type ICaptcha interface {// GenerateCaptcha 生成验证码GenerateCaptcha(ctx context.Context) (id string, b64s string, err error)// VerifyCaptcha 验证验证码VerifyCaptcha(ctx context.Context, id string, code string) bool }var localCaptcha ICaptchafunc Captcha() ICaptcha {if localCaptcha nil {panic(implement not found for interface ICaptcha, forgot register?)}return localCaptcha }func RegisterCaptcha(i ICaptcha) {localCaptcha i }2. Logic层实现 (internal/logic/captcha/captcha.go) package captchaimport (contextgithub.com/gogf/gf/v2/frame/ggithub.com/mojocn/base64Captchagf_new_web/internal/service )type sCaptcha struct {store base64Captcha.Store }func init() {service.RegisterCaptcha(New()) }func New() *sCaptcha {return sCaptcha{store: base64Captcha.DefaultMemStore,} }// GenerateCaptcha 生成验证码 func (s *sCaptcha) GenerateCaptcha(ctx context.Context) (id string, b64s string, err error) {// 配置验证码参数driver : base64Captcha.NewDriverDigit(80, // 高度240, // 宽度6, // 验证码长度0.7, // 曲线干扰度80, // 噪点数量)// 创建验证码c : base64Captcha.NewCaptcha(driver, s.store)// 获取验证码id, b64s, err c.Generate()return }// VerifyCaptcha 验证验证码 func (s *sCaptcha) VerifyCaptcha(ctx context.Context, id string, code string) bool {return s.store.Verify(id, code, true) }3. Controller层实现 (internal/controller/captcha/captcha.go) package captchaimport (contextgf_new_web/internal/servicegithub.com/gogf/gf/v2/frame/g )type Controller struct{}func New() *Controller {return Controller{} }// Generate 生成验证码 type GenerateReq struct {g.Meta path:/captcha method:get tags:验证码 summary:获取验证码 }type GenerateRes struct {Id string json:id // 验证码IDBase64 string json:base64 // Base64编码的图片 }func (c *Controller) Generate(ctx context.Context, req *GenerateReq) (res *GenerateRes, err error) {id, base64, err : service.Captcha().GenerateCaptcha(ctx)if err ! nil {return nil, err}res GenerateRes{Id: id,Base64: base64,}return }// Verify 验证验证码 type VerifyReq struct {g.Meta path:/captcha/verify method:post tags:验证码 summary:验证验证码Id string json:id v:required#验证码ID不能为空Code string json:code v:required#验证码不能为空 }type VerifyRes struct {Valid bool json:valid // 验证结果 }func (c *Controller) Verify(ctx context.Context, req *VerifyReq) (res *VerifyRes, err error) {valid : service.Captcha().VerifyCaptcha(ctx, req.Id, req.Code)res VerifyRes{Valid: valid,}return }4. 功能说明 4.1 整体架构 Service层定义验证码相关的接口Logic层实现具体的验证码生成和验证逻辑Controller层处理HTTP请求调用Logic层的方法 4.2 主要功能 生成验证码 接口路径/captcha请求方式GET返回数据 id: 验证码IDbase64: Base64编码的验证码图片 验证验证码 接口路径/captcha/verify请求方式POST请求参数 id: 验证码IDcode: 用户输入的验证码 返回数据 valid: 验证结果true/false 4.3 技术特点 使用base64Captcha库生成验证码支持自定义验证码参数 图片尺寸验证码长度干扰线程度噪点数量 使用内存存储验证码信息支持验证后自动清除验证码 4.4 使用示例 // 获取验证码 async function getCaptcha() {const response await fetch(/captcha);const data await response.json();// 显示验证码图片document.getElementById(captchaImg).src data:image/png;base64,${data.base64};// 保存验证码IDdocument.getElementById(captchaId).value data.id; }// 验证验证码 async function verifyCaptcha() {const id document.getElementById(captchaId).value;const code document.getElementById(captchaInput).value;const response await fetch(/captcha/verify, {method: POST,headers: {Content-Type: application/json,},body: JSON.stringify({ id, code }),});const result await response.json();if (result.valid) {alert(验证成功);} else {alert(验证失败);} }5. 注意事项 安全性考虑 验证码有效期建议设置为5-10分钟验证失败后应立即失效建议增加防暴力破解机制 性能优化 可以考虑使用Redis替代内存存储合理设置图片大小和质量 用户体验 提供刷新验证码功能验证码要清晰易识别考虑添加语音验证码支持 6. 可扩展性 验证码类型扩展 数字验证码字母验证码算术验证码滑动验证码 存储方式扩展 Redis存储数据库存储 验证规则扩展 大小写敏感/不敏感超时时间重试次数限制 这个实现提供了一个完整的验证码解决方案包括 1. 清晰的三层架构设计 2. 详细的代码实现 3. 完整的功能说明 4. 使用示例 5. 注意事项 6. 扩展建议
http://www.hkea.cn/news/14524372/

相关文章:

  • 公司建设网站的手续tom企业邮箱官网
  • 潍坊网站制作企业阿里云 做网站 百度开放云
  • 深圳企业网站建设专业在线制作图片旋转动态
  • 在iis搭建网站旅游网站制作旅游网
  • 中南集团中南建设网站网站建设电话销售话术技巧
  • 请多记几个本站域名防止失联云南网站建设哪家强
  • 网站做cpa推广引流当地公交建设公司的官网
  • 什么是门户网站?ai做网站页面建多大的
  • 免费的模板网站什么叫友情链接
  • 梵美传媒网站是谁做的怎么做电影网站的
  • 学校网站建设规划济南做网站推广有哪些公司
  • 网站如何转做app住房和城乡建设部资质延期
  • 淘宝客没网站怎么做seo就业前景如何
  • 淄博市建设监理协会网站搭建什么平台
  • 医疗软件网站建设公司简单网站模板
  • 自建国外购物网站网站建设原码
  • 图们市建设局网站毕业设计成品网站
  • 网站备案查询不到说明啥p2p网站建设哪家好
  • 网站建设公司前景网站建设微信营销公司
  • 公司网站推广如何做网站建设功能评估表
  • 网站建设的前期工作基础怎么用htlm5自己做网站
  • 广州站图片建设法律法规文本查询网站
  • 网站源码 和网站模板区别wordpress server酱
  • 有没有专门建设网站的公司电商网站网址大全
  • 个人档案网站该怎么做十大品牌营销公司
  • 郑州营销网站江西企业网站定制
  • 网站怎么做购物车制作花灯
  • 延边网站开发宁波市有哪些网站建设公司
  • 上海平台网站开发邵阳做网站价格
  • 官网网站域名与建设深圳外贸网站优化哪家好