先了解下SSOgit
對於單點登錄淺顯一點的說就是兩種,一種web端的基於Cookie、另外一種是跨端的基於Token,通常想要作的都優先作Token吧,我的建議,由於後期擴展也方便哦。github
小程序也是呢,作成token的形式是較好的。web
流程圖數據庫
一、啓動服務小程序
二、小程序初次加載app.js校驗token,使用code去換取tokenapi
三、檢測User信息是否存在code,不存在則註冊新用戶,最後返回對應用戶Id緩存
四、將隨機Token與UserId一塊兒存入Redis中app
五、返回Token信息,小程序存於緩存中,做爲api請求的認證憑證框架
這個流程思路對什麼後臺語言都是通用的。maven
具體實現
本文的環境主要是作SpringBoot的,全部對於其餘框架可能沒有很好的兼容。
直接上代碼弄起來吧!
首先是開源的話,咱們須要肯定某些東西是必定要配置的,不能寫死。那麼我寫了兩個Config類來獲取application.yml中的數據,不一樣用戶能夠配置他們的參數。
我這邊了以上的參數做爲組件中的可配置,其實部分能夠做爲默認的,不過暫時沒有改了,若是你像要使用就是暫時都是必選的
項目目錄
config包中的就是對配置參數的讀取。
utils包是存放一個Http的請求工具。
最核心的就是咱們的WechatTemplate類了。
根據業務,咱們須要如下幾個方法:
根據小程序傳遞來的code獲取openid
根據openid,咱們能夠和數據庫對接獲得用戶id並生成本身Token
還有校驗Token,是否存在
Maven包
接着打包發到Maven中央倉庫中,生成本身的maven包
如何使用?
我在Github項目中,作了Demo演示。
https://github.com/UncleCatMySelf/wechat-login
你須要作的就是注入模板,調用方法