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

做网站学好哪些软件长沙人才网官网入口

做网站学好哪些软件,长沙人才网官网入口,怎么改网站内容,网上免费咨询律师电话一、登录流程 1- 进入登录页面#xff0c;调用 com.ruoyi.web.controller.common.CaptchaController 类中的 captchaImage 方法#xff0c;生成base64的图片 以及 UUID 2- 提交 登录信息 验证码 uuid 比对 错误#xff1a;返回错误信息#xff0c;删除缓存的验证码 成功…一、登录流程 1- 进入登录页面调用 com.ruoyi.web.controller.common.CaptchaController 类中的 captchaImage 方法生成base64的图片 以及 UUID 2-  提交 登录信息 验证码 uuid 比对 错误返回错误信息删除缓存的验证码 成功 拿到token加入缓存         二、验证码生成  1-前台代码配置 前端login 页面中图片如下 div classlogin-codeimg :srccodeUrl clickgetCode classlogin-code-img//div methods 函数中captchaEnabled  是验证码是否开启的属性以及注册功能开关定义在data中如下   data() {// 验证码开关captchaEnabled: true,// 注册开关register: false,redirect: undefined};}, 在页面 created 时候 调用getCode 生成验证码返回页面 created() {this.getCode();this.getCookie(); }methods: {getCode() {getCodeImg().then(res {this.captchaEnabled res.data.captchaEnabled undefined ? true : res.data.captchaEnabled;if (this.captchaEnabled) {this.codeUrl data:image/gif;base64, res.data.img;this.loginForm.uuid res.data.uuid;}});},.................... src\api\login.js 中请求后台 // 获取验证码 export function getCodeImg() {return request({url: /captchaImage,headers: {isToken: false},method: get,timeout: 20000}) } 返回如下 {code: 200,msg: 操作成功,data: {img: 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,captchaEnabled: true,uuid: 2f329cd71b96426cac682791a058a3a6} } 2-后台代码配置 系参数配置 菜单中sys.account.captchaEnabled  设置了关于验证码是否开启的配置 后台接口:  com.ruoyi.web.controller.common.CaptchaController 类中逻辑如下 1- 判断验证码功能是否启用         redis缓存中获取 sys.account.captchaEnabled  判断是否开启验证码 配置如上截图 2-  生成uuid         这样根据uuid 就能在缓存中找到验证码         String uuid IdUtil.simpleUUID();String verifyKey CacheConstants.CAPTCHA_CODE_KEY uuid; 3- 生成验证码         CaptchaType captchaType captchaProperties.getType();    CaptchaType ruoyi-admin中yml配置 验证码类型、干扰线等等配置 captcha:# 页面 参数设置 可开启关闭 验证码校验# 验证码类型 math 数组计算 char 字符验证type: MATH# line 线段干扰 circle 圆圈干扰 shear 扭曲干扰category: CIRCLE# 数字验证码位数numberLength: 1# 字符验证码长度charLength: 4 4- spel表达式 spel 很强大 可以自己看看 如果是数字计算结果 if (isMath) {ExpressionParser parser new SpelExpressionParser();Expression exp parser.parseExpression(StringUtils.remove(code, ));code exp.getValue(String.class); } 5- 保存到缓存中设置过期时间 RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));详细代码如下 /*** 生成验证码*/GetMapping(/captchaImage)public RMapString, Object getCode() {MapString, Object ajax new HashMap();//redis缓存中获取 sys.account.captchaEnabledboolean captchaEnabled configService.selectCaptchaEnabled();ajax.put(captchaEnabled, captchaEnabled);//是否需要验证码if (!captchaEnabled) {return R.ok(ajax);}// 保存验证码信息String uuid IdUtil.simpleUUID();String verifyKey CacheConstants.CAPTCHA_CODE_KEY uuid;// 生成验证码CaptchaType captchaType captchaProperties.getType();boolean isMath CaptchaType.MATH captchaType;Integer length isMath ? captchaProperties.getNumberLength() : captchaProperties.getCharLength();CodeGenerator codeGenerator ReflectUtils.newInstance(captchaType.getClazz(), length);AbstractCaptcha captcha SpringUtils.getBean(captchaProperties.getCategory().getClazz());captcha.setGenerator(codeGenerator);captcha.createCode();String code captcha.getCode();if (isMath) {ExpressionParser parser new SpelExpressionParser();Expression exp parser.parseExpression(StringUtils.remove(code, ));code exp.getValue(String.class);}RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));ajax.put(uuid, uuid);ajax.put(img, captcha.getImageBase64());return R.ok(ajax);} 三、手机验证、短信验证 com.ruoyi.web.controller.common.CaptchaController  类中还有其他验证方法 smsCaptcha 短信验证码 captchaEmail 邮箱验证码 都是保存到redis中然后通过uuid拿出来校验和上门逻辑一样 /*** 短信验证码** param phonenumber 用户手机号*/GetMapping(/captchaSms)public RVoid smsCaptcha(NotBlank(message {user.phonenumber.not.blank}) String phonenumber) {String key CacheConstants.CAPTCHA_CODE_KEY phonenumber;String code RandomUtil.randomNumbers(4);RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));// 验证码模板id 自行处理 (查数据库或写死均可)String templateId ;LinkedHashMapString, String map new LinkedHashMap(1);map.put(code, code);SmsBlend smsBlend SmsFactory.createSmsBlend(SupplierType.ALIBABA);SmsResponse smsResponse smsBlend.sendMessage(phonenumber, templateId, map);if (!OK.equals(smsResponse.getCode())) {log.error(验证码短信发送异常 {}, smsResponse);return R.fail(smsResponse.getMessage());}return R.ok();}/*** 邮箱验证码** param email 邮箱*/GetMapping(/captchaEmail)public RVoid emailCode(NotBlank(message {user.email.not.blank}) String email) {if (!mailProperties.getEnabled()) {return R.fail(当前系统没有开启邮箱功能);}String key CacheConstants.CAPTCHA_CODE_KEY email;String code RandomUtil.randomNumbers(4);RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));try {MailUtils.sendText(email, 登录验证码, 您本次验证码为 code 有效性为 Constants.CAPTCHA_EXPIRATION 分钟请尽快填写。);} catch (Exception e) {log.error(验证码短信发送异常 {}, e.getMessage());return R.fail(e.getMessage());}return R.ok();}
http://www.zqtcl.cn/news/296166/

相关文章:

  • 能用的网站关于申请开通网站建设的请示
  • 蓬莱网站建设哪家专业怎么样模仿网站
  • 网站建设有什么好处如何查看网站开发源码
  • 惠州做棋牌网站建设哪家好老域名新网站
  • 机械毕业设计代做网站如何快速模仿一个网站
  • seo网站推广优化就找微源优化网页设计自学要多久
  • 网站资源做缓存国外做饮料视频网站
  • 用asp.net做的购物网站西安手机网站制作
  • wordpress 自定义主题wordpress自带数据库优化
  • 电子商务网站建设与维护的考试用自己的电脑做网站划算
  • 微商招商网站源码wordpress怎么改后台
  • 哪些网站有搜索引擎作弊的社群营销平台有哪些
  • 建地方的网站前景苏州做视频网站广告公司
  • 制作网站的主题海口网站自助建站
  • dede二手车网站源码网络工程师
  • 吴桥网站新网站优化怎么做
  • 做网站要求什么条件0资本建设网站
  • 免费做网站排名洛阳软件开发公司有哪些
  • 网站搜索优化方法东莞seo全网营销
  • 广州微网站建设哪家好wordpress怎样将小工具放到左侧
  • 汕头网站搜索优化嘉兴网络项目建站公司
  • 怎么查询网站是什么时候做的网站app的意义
  • 曹妃甸网站建设合肥的房产网站建设
  • 怎么做网站前台二级区域网站名
  • 服务器租用相关网站一个空间怎么放两个网站吗
  • 每个城市建设规划在哪个网站南宁seo怎么做优化团队
  • 做资讯类网站ccd设计公司官网
  • 写作网站5妙不写就删除抚州建设网站
  • 沙田网站建设公司网站风格设计原则
  • 安徽省建设监理网站黑群晖可以做网站吗