摘要:微信的掃碼的登陸是要企業號的,對于一個學生狗哪來企業號,自己有個測試號內心已十分滿足。自己決心做一個仿微信掃碼登陸,對,你沒看錯,就是仿,堅信高仿出奇跡。
前言
點擊訪問項目鏈接
看到慕課網和segmentfault的發表手記和發表文章是Markdown 編輯器,說實話,對于第一次用的我真的很不習慣。不過對于我們代碼開發者來寫挺好的,也就對我們這些開發者述寫自己的代碼故事好點而已。這邊我用的summernote的輕量級文本編輯器,操作簡單,小白操作。適合一般人使用
這個系統我和我朋友一起做的,我只負責介紹自己部分,他的部分我將到時在文章評論貼上鏈接。
微信的掃碼的登陸是要企業號的,對于一個學生狗哪來企業號,自己有個測試號內心已十分滿足。自己決心做一個仿微信掃碼登陸,對,你沒看錯,就是仿,堅信高仿出奇跡。原理很簡單,首先要會創建二維碼,要會微信授權登陸和websocket,也就是把微信授權登陸的地址變為二維碼讓微信的【掃一掃】,通過websocket通信完成之間的信息傳遞。你也可以不用websocket而用輪詢,只是性能耗損多。都可實現。
數據庫方面采用的是mysql和mongoDB,考慮到文章系統的圖片太多容易給mysql帶來太多負載,分些壓力給mongoDB,所以文件方面存在mongoDB,邏輯方面存在mysql(帶寬方面無變化....)
接下來,我要開始我的表演了,給我后退!
小尷尬的是微信測試號,要關注才可以訪問微信授權,微信這邊也限定了微信測試號只可以100人。
系統已發布云服務器。可長期訪問。只是測試號菜單兩個系統是不可以訪問,因為我關掉了啊哈哈哈,不過我已經寫了文章在segmentfault了,SpringBoot做的兩個系統....,或點擊我的文章查看。
首先查看的首頁:
掃碼成功到成功授權登陸或者拒絕授權登陸
summernote 圖片上傳是二進制本地文件的,也就是圖片并不會自己上傳到服務器,要自己去改寫他的圖片上傳
$(function(){ $(".summernote").summernote({ height: 600, //編輯器的高度 tabsize: 2, lang: "zh-CN", focus:true, toolbar: [ ["style", ["style"]], ["font", ["bold", "underline", "clear"]], ["fontname", ["fontname"]], ["color", ["color"]], ["para", ["ul", "ol", "paragraph"]], ["table", ["table"]], ["insert", ["link", "picture", "video"]], ["view", ["fullscreen", "codeview", "help"]] ], callbacks: { //覆寫掉自帶的上傳文件函數 onImageUpload: function (files) { //the onImageUpload API img = sendFile(files[0]); } } }); }); //這一塊是上傳文件,可傳參數是文件 function sendFile(file) { document.getElementById("loading5").style.display="block"; 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 的文件服務器的實現做的,學無止境啊哈哈。這邊就簡單貼上。
文章發表等其他功能可以自行去網站體驗下,還有權限管理:用戶管理和文章審核,在文章編輯器的右下角可以看到,也是掃碼登陸,只是需要管理員及以上的權限才可以進入頁面,我就簡單演示下:
文章按照要求步驟就可以提交你的表演等待審核就可以通過啦!左下角有個預覽操作,點擊將彈出二維碼掃碼就可以微信手機端預覽文章詳情啦,以上我將簡單展示下:
所謂權限采用的簡單的角色限制也就是所謂的RBAC。
采用切面編程來切面
@Aspect @Component @Slf4j public class ManagerAspect { @Autowired private UserService userService; @Autowired private ManagerService managerService; @Pointcut("(execution(public * com.test.demo.controller.ManagerController.*(..)))"+"||"+"(execution(public * com.test.demo.controller.SuperManagerController.*(..)))") 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); Mapmap = 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68054.html
摘要:實現的原理權限機制與適配經驗掘金一概要已經發布一段時間了,市面上很多應用都已經適配。希望對大家有所幫助,更短信驗證就是那么簡單掘金又有半個月沒更新文章了,最近工作比較忙,一時沒時間寫,今天趁著清閑,趕緊補上一篇。。。。。 2017,你絕對想嘗試的新 Android 庫 - Android - 掘金1 BufferTextInputLayout 直接看效果圖:升序效果 ... 計算機程序...
摘要:功能介紹微信網頁端顧名思義就是在微信瀏覽器上看的啦,本系統使用微信測試號條件有限授權登錄,可以查看網頁端所發的文章,對文章進行評論,回復,點贊,可修改個人的資料,可以發表說說,也是可對說說進行回復點贊評論。 本系統是基于Spring Boot 技術實現的文章發布系統,該系統是我和我朋友一起做的,本文僅介紹自己的這部分,他的那部分會在本文發布后在評論里貼上鏈接,微信網頁上的操作為我所負責...
閱讀 1859·2021-09-22 15:29
閱讀 3351·2019-08-30 15:44
閱讀 3558·2019-08-30 15:43
閱讀 1763·2019-08-30 13:48
閱讀 1489·2019-08-29 13:56
閱讀 2474·2019-08-29 12:12
閱讀 965·2019-08-26 11:35
閱讀 1051·2019-08-26 10:25