热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于SpringBoot的仿微信扫描登陆+轻量级富文本编辑>文章系统

前言点击访问项目链接看到慕课网和segmentfault的发表手记和发表文章是Markdown编辑器,说实话,对于第一次用的我真的很不习惯。不过对于我们代码开发者来写挺好的,也就对

前言

点击访问项目链接
看到慕课网和segmentfault的发表手记和发表文章是Markdown 编辑器,说实话,对于第一次用的我真的很不习惯。不过对于我们代码开发者来写挺好的,也就对我们这些开发者述写自己的代码故事好点而已。这边我用的summernote的轻量级文本编辑器,操作简单,小白操作。适合一般人使用

系统介绍

这个系统我和我朋友一起做的,我只负责介绍自己部分,他的部分我将到时在文章评论贴上链接。
微信的扫码的登陆是要企业号的,对于一个学生狗哪来企业号,自己有个测试号内心已十分满足。自己决心做一个仿微信扫码登陆,对,你没看错,就是仿,坚信高仿出奇迹。原理很简单,首先要会创建二维码,要会微信授权登陆和websocket,也就是把微信授权登陆的地址变为二维码让微信的【扫一扫】,通过websocket通信完成之间的信息传递。你也可以不用websocket而用轮询,只是性能耗损多。都可实现。
数据库方面采用的是mysql和mongoDB,考虑到文章系统的图片太多容易给mysql带来太多负载,分些压力给mongoDB,所以文件方面存在mongoDB,逻辑方面存在mysql(带宽方面无变化….)
接下来,我要开始我的表演了,给我后退!
《基于SpringBoot的仿微信扫描登陆+轻量级富文本编辑->文章系统》&#8221; /></span></p><h2>tips:</h2><p>小尴尬的是微信测试号,要关注才可以访问微信授权,微信这边也限定了微信测试号只可以100人。<br /><span><img layer-src= data = new FormData();
data.append("file", file);
$.ajax({
data: data,
type: "POST",
url: "${projectUrl}/testuploadimg2",
cache: false,
contentType: false,
processData: false,
success: function(data) {
if("uploadFail"==data){
alert("插入失败");
return;
}
$("#nanSummernote").summernote('insertImage', data, 'image name'); // the insertImage API
document.getElementById("loading5").style.display="none";
},
});
}

接下来服务端这端就可以直接存啦!

@PostMapping("/testuploadimg2")
public String success(@RequestParam("file") MultipartFile file,
HttpServletRequest request){
String fileId = "";
try {
File f = new File(file.getOriginalFilename(), file.getContentType(), file.getSize(), file.getBytes());
f.setMd5(MD5Util.getMD5(file.getInputStream()) );
fileId = KeyUtil.genUniqueKey();
f.setId(fileId);
mongoFileService.save(f);
log.info("mongoDB存图片成功!fileId={}",fileId);
} catch (IOException | NoSuchAlgorithmException ex) {
ex.printStackTrace();
log.error("【MongoDB上传文件错误】:fileId={}",fileId);
return null;
}
return urlConfig.getUrl()+urlConfig.getContextPath()+"/file/"+fileId;

MongoDB文件上传我是学习慕课网的老卫老师的手记基于 MongoDB 及 Spring Boot 的文件服务器的实现做的,学无止境啊哈哈。这边就简单贴上。
文章发表等其他功能可以自行去网站体验下,还有权限管理:用户管理和文章审核,在文章编辑器的右下角可以看到,也是扫码登陆,只是需要管理员及以上的权限才可以进入页面,我就简单演示下:
《基于SpringBoot的仿微信扫描登陆+轻量级富文本编辑->文章系统》&#8221; /></span><br />文章按照要求步骤就可以提交你的表演等待审核就可以通过啦!左下角有个<strong>预览</strong>操作,点击将弹出二维码扫码就可以微信手机端预览文章详情啦,以上我将简单展示下:<br /><span><img layer-src= public void verify(){} //验证
@Before("verify()")
public void doerify() { //方法的具体实现
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
String sessiOnOpenid= (String)attributes.getRequest().getSession().getAttribute("userid"); //openid
User user = userService.findOne(sessionOpenid);
Map map = new HashMap<>();
if(user==null){
log.error("未进入管理员页面原因:用户不存在");
throw new ManagerException();
}
Manager manager = managerService.findByOpenid(sessionOpenid);
if(manager==null){
log.error("未进入管理员页面原因:无管理信息");
throw new ManagerException();
}
String code = manager.getPower();
if(code.equals(String.valueOf(PowerEnum.USER.getCode()))){ //如果是读者 您无权限进入管理员页面
throw new ManagerException();
}
String power = "undefind";
if(code.equals(String.valueOf(PowerEnum.SUPER_ADMIN.getCode()))){
power = String.valueOf(PowerEnum.SUPER_ADMIN.getMessage());
}
if(code.equals(String.valueOf(PowerEnum.ADMIN.getCode()))){
power = String.valueOf(PowerEnum.ADMIN.getMessage());
}
if(power.equals("undefind")){
map.put("msg","您无权限进入管理员页面");
log.error("未进入管理员页面原因:无此权限");
throw new ManagerException();
}
}
}

文章评论等是我朋友做的,他将也写篇文章介绍,他的部分我将到时在文章评论贴上链接。
总体就是这样,后期需要我将贴上源码,如需了解系统详情可以邮箱:519286925@qq.com


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 智能消息服务数字短信使用FAQ
    本文介绍了智能消息服务数字短信的开通流程和操作步骤,包括开通数字短信的路径、申请流程、控制台操作以及API接口对接模式。同时还介绍了数字短信模板的创建规则和要求,包括审核状态的说明和建议。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
author-avatar
你就夜沉思
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有