摘要:注冊流程是從小程序簡稱,以下替代獲取用戶的,給到服務(wù)器,服務(wù)器會(huì)用還有自己的等信息一起去微信服務(wù)器請求用戶數(shù)據(jù),注意每一個(gè)所對應(yīng)的用戶都是不一樣的。
本博客 貓叔的博客,轉(zhuǎn)載請申明出處前后端項(xiàng)目的地址
閱讀本文約 “5分鐘”
適讀人群:Java后端、Java初級、小程序前端
ShareBookServer
ShareBookClient
小程序前端先看一下本節(jié)的學(xué)習(xí)目錄,我們項(xiàng)目的小程序會(huì)在首次登錄的時(shí)候自動(dòng)獲取用戶的OpenId,并作為系統(tǒng)的注冊信息,這里只是獲取其OpenId或者SessionId,還沒有獲取用戶信息(比如頭像、Id、性別等)。
而在獲取前,大家可能還要了解一下小程序的用戶注冊流程,這里我就不具體說了。
我們會(huì)在app.js(這個(gè)是所有小程序首次都會(huì)執(zhí)行的js,我們會(huì)對小程序的緩存區(qū)Storage進(jìn)行校驗(yàn),并確定是否存在有效token),做校驗(yàn),如果沒有就進(jìn)行首次注冊。
注冊流程是從小程序(簡稱vx,以下vx替代)獲取用戶的code,給到服務(wù)器,服務(wù)器會(huì)用code還有自己的appId等信息一起去微信服務(wù)器請求用戶數(shù)據(jù),注意每一個(gè)vx所對應(yīng)的用戶openid都是不一樣的。
config.js是存放整個(gè)vx的統(tǒng)一基層API地址。
就如上圖寫的,前端在第一節(jié)的內(nèi)容較為簡單,大家可以在GitHub看到源碼。
針對適讀人群的合理學(xué)習(xí)時(shí)間是:45分鐘,并了解vx官網(wǎng)部分簡易API。
Java服務(wù)端本節(jié)的服務(wù)端是重點(diǎn),除了搭建整個(gè)SpringBoot基本開發(fā)框架以外(好像不用很久)還要準(zhǔn)備一些基本的公關(guān)類和工具類,這個(gè)大家學(xué)習(xí)起來可能有點(diǎn)費(fèi)勁,不過干貨很多。
首先是技術(shù)棧,SpringBoot+MySQL+MyBatis,這個(gè)我就不具體說怎么搭建了,詳情看源碼,或者我的官網(wǎng)也有搭建教程。
在pom文件中,我引入了Swagger,這會(huì)方便我們與前端對接API的信息,你僅需要在啟動(dòng)類加上一個(gè)@EnableSwagger2的注解即可。
訪問:http://localhost:8080/sharebook/swagger-ui.html(注意我的application-dev.yml中給項(xiàng)目起了名字叫sharebook,如果你是其他名字,請修改)
需要介紹的是,大家可以看看resources文件夾我采用application.yml、application-dev.yml,這樣可以方便我們快速切換開發(fā)、生產(chǎn)、測試等多種環(huán)境的項(xiàng)目配置,希望大家可以養(yǎng)成習(xí)慣。
在項(xiàng)目的實(shí)體類上,我采用Lombok快速生成get/set方法,你僅需要加一個(gè)@Data的注解,這里你需要注意還要加無參和全參的構(gòu)造函數(shù),例如我一開始沒有全參的構(gòu)造,在讀取生成User實(shí)體類的時(shí)候,MyBatis會(huì)報(bào)java.lang.NoSuchMethodException。
同時(shí)實(shí)體類需要序列號,我這里就采用默認(rèn)的Serializable,對實(shí)體類序列化是因?yàn)樗赡苄枰M(jìn)行網(wǎng)絡(luò)通信或者數(shù)據(jù)持久化。對于加了Serializable的實(shí)體類,最好有一個(gè)對應(yīng)的UID。
因?yàn)槲沂怯肐DEA(推薦使用),所有如果要生成UID,可以在配置勾選以上的選項(xiàng),然后點(diǎn)擊實(shí)體類按“Alt+Enter”,然后選擇生成UID即可。
common & util對于AppMessage,大家可能會(huì)吐槽,因?yàn)槠鋵?shí)可以優(yōu)化,不過我從ssm遷移過來就偷懶了,大家可以fork后自己改為SpringBoot的yml配置形式,它其實(shí)就是一些靜態(tài)配置。
HttpService寫的不好,大家可以修改優(yōu)化,是一個(gè)普通的Http請求工具類。
主要是ResponseCode和ServerCache,對API接口返回層做了統(tǒng)一處理,vx前端程序員可以更好的調(diào)試工作,推薦大家模仿優(yōu)化。
TokenCache使用了Google的guava做了本地緩存,緩存vx登錄的token,一定要設(shè)定有效時(shí)間。
其實(shí)util包和common包一開始拆分的不好,所以大家可以優(yōu)化。
MD5Util就是一個(gè)MD5的加解密處理。
業(yè)務(wù)處理就如上面vx環(huán)節(jié)說的,我們API獲取到code后會(huì)進(jìn)行校驗(yàn)處理。
我在接口實(shí)現(xiàn)使用了很古老的方式,代碼是很久以前的了,見諒,介紹流程為主。大家可以去修改優(yōu)化。
我對從微信服務(wù)器獲取到的結(jié)果進(jìn)行校驗(yàn)和數(shù)據(jù)獲取,得到的openid先到數(shù)據(jù)庫校驗(yàn),用戶是否存在,存在就生成Token,不存在就注冊后生成Token。流程很簡單。
補(bǔ)充以下,vx的API路徑我推薦:http://localhost:8080/sharebook/api/v1/
這里采用v1命名。是因?yàn)楹罄m(xù)升級后v2,這樣有時(shí)可以保證老版本API可以繼續(xù)使用或者停用。
針對適讀人群的合理學(xué)習(xí)時(shí)間是:115分鐘,推薦自己模仿敲一遍。
實(shí)戰(zhàn)調(diào)試vx首次登錄調(diào)用成功。
vx緩存區(qū)Storage存儲(chǔ)token數(shù)據(jù)
后端服務(wù)器日志打印正常。
SQL數(shù)據(jù)錄入正常,這里sessionId為null是正常的,項(xiàng)目業(yè)務(wù)沒有要求存儲(chǔ)sessionId,注意對于在統(tǒng)一公眾號下的不同小程序的openid是不同的,但是sessionId是一致的(不知道近期vx官方是否更改規(guī)則)。
目錄鏈接沒有實(shí)戰(zhàn)經(jīng)驗(yàn)?從零敲一個(gè)企業(yè)級共享項(xiàng)目前后端!
公眾號:Java貓說學(xué)習(xí)交流群:728698035
現(xiàn)架構(gòu)設(shè)計(jì)(碼農(nóng))兼創(chuàng)業(yè)技術(shù)顧問,不羈平庸,熱愛開源,雜談程序人生與不定期干貨。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77705.html
摘要:前言微信小程序中可以直接運(yùn)行頁面,這一新組件的產(chǎn)生,可能直接導(dǎo)致小程序數(shù)量迎來一波高峰。微信小程序配置系列問題配置域名業(yè)務(wù)域名中配置的就是小程序以及和中引用的域名。 今日勵(lì)志語 要接受自己行動(dòng)所帶來的責(zé)任而非自己成就所帶來的榮耀。 前言 微信小程序中可以直接運(yùn)行 web 頁面,這一新組件 web-view 的產(chǎn)生,可能直接導(dǎo)致小程序數(shù)量迎來一波高峰。本篇博文將從業(yè)務(wù)選型,微信小程序后臺(tái)...
摘要:此次教程將再次帶領(lǐng)大家體驗(yàn)消息推送,實(shí)現(xiàn)另一個(gè)微信消息推送的觸發(fā)器,關(guān)于自動(dòng)回復(fù)小程序客服消息的。我們需要通過控制臺(tái)引擎觸發(fā)器添加創(chuàng)建一個(gè)觸發(fā)器,這個(gè)觸發(fā)器將幫助我們在設(shè)置好的條件被觸發(fā)的情況下運(yùn)行云函數(shù)來實(shí)現(xiàn)用戶消息的自動(dòng)回復(fù)。 在上次推送完「卡券核銷消息推送」的教程后,我們決定再多出點(diǎn)教程。 此次教程將再次帶領(lǐng)大家體驗(yàn)「消息推送」,實(shí)現(xiàn)另一個(gè)「微信消息推送」的觸發(fā)器,關(guān)于自動(dòng)回復(fù)小...
摘要:今天給大家?guī)砹撕贸绦騿T實(shí)戰(zhàn)項(xiàng)目商城管理后臺(tái)。配合項(xiàng)目學(xué)習(xí)會(huì)讓你更快掌握它的使用方法下面就來看看好程序員這套實(shí)戰(zhàn)項(xiàng)目課程介紹好程序員項(xiàng)目本項(xiàng)目是一個(gè)使用開發(fā)的商城系統(tǒng)的管理后臺(tái),里面登錄判斷,接口調(diào)用,數(shù)據(jù)展示和編輯,文件上傳等后臺(tái)功能。 眾所周知,項(xiàng)目經(jīng)驗(yàn)對于一個(gè)程序員變得越來越重要。在面...
摘要:在領(lǐng)域,有兩大主流的安全框架,和。角色角色是一組權(quán)限的集合。安全框架的實(shí)現(xiàn)注解的實(shí)現(xiàn)本套安全框架一共定義了四個(gè)注解。該注解用來告訴安全框架,本項(xiàng)目中所有類所在的包,從而能夠幫助安全框架快速找到類,避免了所有類的掃描。 寫在最前 本文是《手把手項(xiàng)目實(shí)戰(zhàn)系列》的第三篇文章,預(yù)告一下,整個(gè)系列會(huì)介紹如下內(nèi)容: 《手把手0基礎(chǔ)項(xiàng)目實(shí)戰(zhàn)(一)——教你搭建一套可自動(dòng)化構(gòu)建的微服務(wù)框架(Sprin...
閱讀 2457·2021-10-13 09:40
閱讀 3345·2019-08-30 13:46
閱讀 1129·2019-08-29 14:05
閱讀 2964·2019-08-29 12:48
閱讀 3663·2019-08-26 13:28
閱讀 2156·2019-08-26 11:34
閱讀 2291·2019-08-23 18:11
閱讀 1167·2019-08-23 12:26