当前位置:   article > 正文

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-公众号实现人机验证实现

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-公众号实现人机验证实现

锋哥原创的Springboot+Layui python222网站实战:

python222网站实战课程视频教程(SpringBoot+Python爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBoot+Python爬虫实战) ( 火爆连载更新中... )共计23条视频,包括:python222网站实战课程视频教程(SpringBoot+Python爬虫实战) ( 火爆连载更新中... )、第2讲 架构搭建实现、第3讲 页面系统属性动态化设计实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1yX4y1a7qM/用户关注公众号,公众号调用我们开发的服务器接口,生成验证码,存入redis,有效期10分钟,以及公众号里返回验证码。

用户开到验证码,网站里输入验证码,提交到后台,后台去调用redis验证用户验证码是否正确,如果正确,则返回网站资源数据,错误的话,则返回错误提示。

公众号订阅号。进入后台管理,设置服务器地址URL,以及令牌Token。

后端具体看wx-api项目。都封装好了,直接可以套用。

项目里面:

  1. @Autowired
  2. private RedisUtil redisUtil;

IndexController 加下验证方法:

  1. /**
  2. * 校验验证码
  3. *
  4. * @param code
  5. * @return
  6. */
  7. @ResponseBody
  8. @RequestMapping("/checkCode")
  9. public Map<String,Object> checkCode(String code) {
  10. Map<String, Object> resultMap = new HashMap<>();
  11. if(redisUtil.hasKey(code)) {
  12. resultMap.put("success",true);
  13. } else {
  14. resultMap.put("success",false);
  15. }
  16. return resultMap;
  17. }

网站页面,article:

加下按钮:

<div class="download" th:if="${article.download}"><button type="button" class="layui-btn layui-btn-danger" onclick="openDialog()" th:text="${article.downloadBtnContent}">下载资源</button></div>
  1. <script src="/static/layui/layui.js"></script>
  2. <script src="/static/js/jquery.js"></script>
  3. <script th:inline="javascript">
  4. /*<![CDATA[*/
  5. layui.use(['element','laypage','form'], function(){
  6. var element = layui.element; //导航的hover效果、二级菜单等功能,需要依赖element模块
  7. var $ = layui.jquery; // 使用jquery
  8. });
  9. function openDialog(){
  10. layer.closeAll();
  11. layer.open({
  12. type: 2,
  13. title: '系统提示',
  14. shadeClose: false,
  15. shade: 0.8,
  16. area: ['900px', '350px'],
  17. content: '/static/checkDownload.html' //iframe的url
  18. });
  19. }
  20. function showDownload(){
  21. layer.closeAll();
  22. layer.open({
  23. type: 2,
  24. title: '资源下载页面',
  25. shadeClose: false,
  26. shade: 0.8,
  27. area: ['750px', '450px'],
  28. content: '/article/downloadContent/[[${article.id}]]' //iframe的url
  29. });
  30. }
  31. /*]]>*/
  32. </script>

验证成功,就获取下载帖子

  1. /**
  2. *
  3. * @return
  4. */
  5. @RequestMapping("/downloadContent/{id}")
  6. public ModelAndView downloadContent(@PathVariable(value = "id",required = false)Integer id){
  7. ModelAndView mav=new ModelAndView();
  8. Article article = articleService.getById(id);
  9. mav.addObject("downloadContent",article.getDownloadContent());
  10. mav.setViewName("downloadContent");
  11. return mav;
  12. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50039
推荐阅读
相关标签
  

闽ICP备14008679号