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

怎样申请个人网站推广普通话写好规范字手抄报内容

怎样申请个人网站,推广普通话写好规范字手抄报内容,wordpress字母头像,自己做的网站给人攻击了怎么办一、验证码 一般来说#xff0c;网站在登录的时候会生成一个验证码来验证是否是人类还是爬虫#xff0c;还有一个好处是防止恶意人士对密码进行爆破。 二、流程图 三、详细说明 3.1 后端生成验证码 Override public ResultMapString, String getVerifica…一、验证码 一般来说网站在登录的时候会生成一个验证码来验证是否是人类还是爬虫还有一个好处是防止恶意人士对密码进行爆破。 二、流程图 三、详细说明 3.1 后端生成验证码 Override public ResultMapString, String getVerificationCode() {// HuTool 定义图形验证码的长和宽, 验证码的位数干扰线的条数// 线段干扰的验证码LineCaptcha lineCaptcha CaptchaUtil.createLineCaptcha(116, 36, 4, 50);String uuid UUID.randomUUID().toString();String verificationCodeKey VerificationCode: uuid;// 存到 redis 中ValueOperationsString, String ops redisTemplate.opsForValue();ops.set(verificationCodeKey, lineCaptcha.getCode());// 设置 15 分钟的过期时间redisTemplate.expire(verificationCodeKey, 15, TimeUnit.MINUTES);MapString, String map new HashMap(2);map.put(verificationCodeBase64, lineCaptcha.getImageBase64());map.put(uuid, uuid);return Result.success(map); }记得设置验证码过期时间否则每一次生成验证码都会在 redis 里面产生数据造成内存浪费。 返回给前端的 json {code: 200,msg: 操作成功,data: {uuid: bc814884-fffb-4943-834a-40cc92decfa6,verificationCodeBase64: iVBORw0KGgoAAAANSUhEUgAAAHQAAAAkCAYAAABYFB7QAAAFtUlEQVR4Xu3YfUxVdRjAcW0zM6atSX84X1JhleMPI6VmtcxexFZs5qq5/mhNpxKV06TMiQrpVssxopClZr7QdFCycutFpmn4QhgkAJ2GaK8eUWUCxeIe70vT/f33J2zc557zr33nPM7B1C2zPvPc9BNz4751zvGBjttmoMPTCavrzxc3CGOgR9p/klepxbr/WRw8N2wq3ZeMYaahhxSuUoeqFdTRPxFHLCtS3en8Xh5ZxLlM2t3Nht9w3FteFTawJsEq4DHXem/eEjZkdyX8puEN7c5ZDkHNokTa2/f/7Fs9BQGyisprhRYuFrnl/yGQ4HNRlZr3MI8cXgCU1w16E83bpe9ZkBNg2URmGFBNjhlBSXjVlRXIaqBKsly0CjNRxhhXgCv3rykjhqGUFF0H/yxmsaXvmvJOOMtHjhFqUVgO3uVTEhx5pmUNuuBjfoTsKtOGkzh3Qr0lFxCTjTSjuDHfcrvr9iGoqkYXXFPgB2OuCsnpNFDmnOVVsO/cemKoEaLCXSwqxYavpwEV09k0JXp8cId15uKYzRDoD4/XM8qBdv41SKm5aABvxcuFc0H7p4Pf00rUpJazbKhshs2CffPlF2ftI6QXtL6uH5uRsEfHygh1DA3qjKhdvtc76g3RlOPoMVYsCU2itBQIAcZVrIX73fpiS8wvM3HgWZqz7GR5atQvs1wbo6bCsY6z4moK2LUzEiZZ4RU5YA52ZxRAYvGU9qO/ruCHoHhoOjg3Fvw0bXhYgVVSw9wv9sHKw80wNTMM4ozbcNpSF7Pv2xqAmwasDsNtu29Ctw17bh7FnvhVB2WteRQR1nM7Eq7PHdhjfZ8EzOGqlTdf2izAKqqe1RwIN2dLBewt74AOpxvcXj/YrvZDepENdwmbzkHK0tc13YppFNZjd0i2oaRXKEOloydVUJ/bCbaCyWDfMyN4cXpkOwE2Em4sRQPtnfUBPWSoi60uBEsMgjFAGrsVC1fv5tImuuaepbfcrr924tV5vSLytxZGcKOBshgqL9icY82I9dmvVhKrK69D895fMcFuuKedaDB52Xj3tnQkB8H3oFOulVNK6waqMN/Fz3EBTU17yJi1bT20RVsHrst5uGVZaD9rafx6rzywxLxWNe0BZIzKQGylJCNdrc7D8R1DWo/wNeR9kUHB5ZBuo4tR5Bb9YUyo7zRo0EymKoPGEf/Ogsgvr8AbqSlfrwCtkoJcAaAbYMtPGbBAS95Qp9xJbGUHnBUtD8Nd9JtqHW5D0njtEeyTqPoH1ubVcoBVZC1gNsCaj7Rj1iNh16jK5k8UAVQNsLs3BYDFUJliXF1QO8aGc1gta2hz9Dha67PHhO8ieVP7dtqdxtBYLrCWg3bV7EbSjjO8/pBS9QgVYYdRghbQCbyhuRKz8E610JfZ9VSees/qQTXZcgNWDq5YloOwLeAbaXfM1XXGPgtIocLSi4Z5v6kGspK0V0O500zUMeHyw8PMqPOd4/U265p4loJeLn0XQ/tZTdMW9aKA0LbhqrdgfuJg3vZKOFrdCc4BL37qLW90wgu5fNuWWEt/TFTsgTUvmcmgnq67XTFPSXQpJRZsuGda9CLYAxOadhzlj1Hrch00Lh9BVDzxb0I6ve4pCtTUgKlUWAtyMltcYrzaMtEOFx5DWHZd7pTPyzHW23u8Rb88t6qTAcVYrBszM0fAm1JoYuwls/OxuEZRU44VYLDXlvdkUk/ysZIiqBCAqwpuL4bIdDWRXSjmhpsYfUJ2RhJgFWqc/F9OGZnBDciqDRusEFICLgh0LMnBOoI/096tNRghSiwUWRaJNi6pFdwhqqYQfkUvM22PCUO9kEo7Sk0ZMAiybjDyxWEJsFYDWwvqdYC/PS2IkTwzyXBq3QfPWPEJr1qpbgU2EiTlyXgRMpa0DukLeWJsuFdJNhR0BGcEuwo6G3W/2buccxVrdRAAAAAAElFTkSuQmCC} }Base64 是一种用于将二进制数据编码为 ASCII 字符的编码方法我们这边用这个编码传递验证码图片数据在 verificationCodeBase64。 3.2 前端生成验证码图片 3.2.1 获取验证码 Base64 并且拼接 const updateVerificationCodeImage async () {// 图像类型const imageType image/png;const res await userGetVerificationCodeApi();if (res.data) {if (res.data.data) {verificationCodeBase64.value res.data.data.verificationCodeBase64;uuid.value res.data.data.uuid;// 拼接 Base64 图像数据verificationCodeImageSrc.value data:${imageType};base64,${verificationCodeBase64.value};}} };3.2.2 渲染到页面上 div classverificationCode-classimg :srcverificationCodeImageSrc alt验证码加载失败 /el-link classmx-1 clickupdateVerificationCodeImage看不清楚, 换一张/el-link /div3.3 前端用户点击登录 登录表单的数据加上 uuid 和验证码确保唯一性。 const form reactive({username: ,password: ,uuid: ,verificationCode: , });3.4 后端验证用户输入的验证码是否正确 Override public ResultAppUserLoginVO userLogin(AppUserLoginDTO appUserLoginDTO) {if (Objects.nonNull(appUserLoginDTO)) {// 先对验证码进行核对ValueOperationsString, String ops redisTemplate.opsForValue();String uuid appUserLoginDTO.getUuid();String verificationCode appUserLoginDTO.getVerificationCode();String verificationCodeKey VerificationCode: uuid;// redis 里面存的验证码String redisVerificationCode ops.get(verificationCodeKey);if (!Objects.equals(verificationCode, redisVerificationCode)) {// 用户填入的验证码与 redis 中的不相同return Result.success(new AppUserLoginVO(), 登录失败验证码错误);} else {// 相同ops.getOperations().delete(verificationCodeKey);}} }四、结果 五、参考资料 hutool-图形验证码
http://www.sadfv.cn/news/477178/

相关文章:

  • 网站开发用什么编辑器网站怎么盈利的
  • 免费看电视剧的网站有哪些西安seo阳建
  • 电商网站建设考试题wordpress 自定义分页
  • 网站首页代码在哪里福州seo外包公司
  • 做网站背景代理记账客源怎么找
  • 海兴县做网站做好网站建设对企业有什么作用
  • 佛山专业的网站建设中山seo技术
  • 中卫市建设局网站logo是什么伊思logo
  • 建设一个域名抢注的网站异地备案 网站
  • 桂林哪里做网站龙岩市住房和城乡建设厅网站首页
  • 郑州做网站建设公司哪家好域名申请的理由和用途
  • 广东省路桥建设发展有限公司网站手机网站二级域名
  • 2017年最新网站设计风格网站备案名称怎么修改
  • 宣传册设计及网站建设手机怎么解除禁止访问网页
  • 免费开通网站石家庄专业网站设计电话
  • 网站 维护电商网站开发 上海
  • 佳木斯城乡建设局网站wordpress 阿里云虚拟主机
  • 网站建设举报南京搜必应网站优化
  • 云南网站设计模板网站建设默认字体
  • 哪个公司网站备案快中山市城乡和住房建设局网站
  • 购物平台网站建设网站需求怎么做
  • 世界著名免费邮箱网站知名市场调研公司
  • 传奇网站架设教程wap小说网站源码
  • 杭州网站建设提供商如何用dw做网站
  • 加强网站信息建设网页设计怎样设置图片大小
  • 网站域名申请流程上海网站建设价位
  • 网站策划与网上营销百度蜘蛛对视频网站的抓取
  • 微网站建设费用预算织梦网站 防黑
  • 用vs做购物网站论坛型网站怎么做的
  • 建设部网站监理工程师网站建设课程学习