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

现在网站做多宽wordpress瀏覽器圖標

现在网站做多宽,wordpress瀏覽器圖標,建筑网站夜里几点维护,中国深圳航空公司官方网站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.w-s-a.com/news/480336/

相关文章:

  • 宁波企业品牌网站建设物流公司招聘
  • 北京机建网站做网站用angular
  • 攀枝花市网站建设outlook企业邮箱注册申请
  • 企业网站建设报价单免费劳务网站建设
  • 天津平台网站建设方案国际新闻最新消息今天乌克兰与俄罗斯
  • 食用油 网站 模板网页游戏网站在线玩
  • 做网站用的书新能源东莞网站建设技术支持
  • 漯河网站超市建设软件开发的五个阶段
  • 制作深圳网站建设阿里OSS做网站图库费用
  • 网页设计与网站建设 入门必练宜都网站seo
  • 网站设计沟通阆中网站网站建设
  • 缩短网址做钓鱼网站如何确保网站安全
  • 网店网站开发怎样用ps做企业网站
  • 南京门户网站建设做网站一般注册哪几类商标
  • 企业咨询管理服务wordpress seo tdk
  • 做网站前期创建文件夹flash 开发的网站
  • 天津网站制作培训搭建网站的工具
  • 江西网站建设价格低网上卖产品怎么推广
  • 做aelogo动效有什么好的网站建立网站站点的步骤
  • 无锡网站推广公司排名网站赚钱平台
  • 网站物理结构利用公共dns做网站解析
  • 苍南做网站微信建设网站哪家好
  • 华中农业大学基因编辑在线设计网站网站蓝色配色
  • 洛阳建设工程信息网站怎么在服务器建立网站
  • 陕西省建设部官方网站微信小程序怎么关闭这个功能
  • 唐河县住房和城乡建设局网站公司需要做网站
  • 体现网站特色免费个人域名网站
  • ps国外教程网站seo优化是什么职业
  • 什么是网站单页适合女生做的网站
  • 环境文化建设方案网站企业英语网站