小程序登陸(Laravel后臺)

小程序登陸相比微信登陸要繁瑣一些栏豺,因為登陸的時候不能直接拿到用戶的信息撤嫩。需要再次到后臺進行解密生年。

這篇文章所用的服務(wù)架構(gòu)如下:

1、Laravel后臺:主要是管理用戶晋辆,和一些操作邏輯登陸邏輯渠脉。

2、微信后臺:主要是儲存微信配置項瓶佳,用戶微信用戶授權(quán)解密等等芋膘。

3、微信官方后臺:微信官方服務(wù)器霸饲。

4索赏、小程序前端

之所以將微信授權(quán)和解密放在單獨的服務(wù)器是因為在公眾號授權(quán)方面涉及到多站點授權(quán),需要統(tǒng)一回調(diào)到統(tǒng)一站點贴彼,再進行分發(fā)潜腻。而且服務(wù)單一,易維護器仗。

首先列出應(yīng)該查看的小程序API:

1融涣、wx.login(Object object)

2、wx.getUserInfo(Object object)

3精钮、code2Session

下面是流程圖:

真特么丑


其實認真看圖就完全明白了威鹿,為了照顧你們可能看不懂我寫的字,我就簡單說一下流程轨香。

1忽你、用戶打開小程序,小程序就執(zhí)行wx.login方法臂容。會靜默獲取到j(luò)s_code科雳。留著備用根蟹。

此階段小程序的有的數(shù)據(jù):js_code

2、小程序前端接下來調(diào)用wx.getUserInfo方法(withCredentials參數(shù)為true)糟秘,注意這個方法需要用戶授權(quán)简逮。也就是彈出萬惡授權(quán)框,??注意用戶拒絕授權(quán)要做處理(也就是啥都不讓用戶干尿赚,跳到一個頁面放一個授權(quán)button散庶,點擊重新彈出授權(quán)框)。授權(quán)成功后會返回encryptedData凌净、iv和一堆驗證的數(shù)據(jù)悲龟,留著encryptedData、iv備用冰寻。

此階段小程序的有的數(shù)據(jù):js_code躲舌、encryptedData、iv

3性雄、小程序前端用剛才拿到的js_codeLaravel后臺獲取3rdSession(后面說這是個啥)没卸。

? ? ? ? a)這個接口都干了啥,返回了啥秒旋?

接受到j(luò)s_code之后约计,Laravel后臺就用這個js_code去請求微信后臺的獲取open_id和session_key接口。

b)微信后臺的這個接口都干了啥迁筛?

微信后臺調(diào)用code2Session接口(上面提到過)煤蚌。這個接口接收js_code,返回open_id和session_key细卧,返回給Laravel后臺open_id和session_key(用來解密尉桩,留著備用)。

c)Laravel后臺接收到open_id和session_key之后贪庙,把這兩個放起來存著蜘犁,因為經(jīng)常變,放在緩存中就可以止邮。我用的是這種格式[open_id(3rdSeesion) => session_key]这橙,之后把open_id(3rdSeesion)返回給小程序前端

3rdSession其實就是一個標識,正常來說應(yīng)該把open_id和session_key存在緩存导披,鍵是一個隨機字符串屈扎,這個字符串就是3rdSession,為了方便撩匕,小程序正好也需要open_id,就用open_id代替了3rdSession鹰晨。

此時微信后臺參數(shù):open_id和session_key

此階段小程序的有的數(shù)據(jù):js_code和open_id、encryptedData、iv模蜡、open_id(3rdSession)

4漠趁、小程序前端接著用現(xiàn)在有的數(shù)據(jù)open_id(3rdSession)、encryptedData哩牍、iv棚潦、去請求Laravel后臺解密encryptedData(被加密的用戶信息)

? ? ? ? a)這個接口干了啥令漂?

?Laravel后臺用傳遞過來的open_id(3rdSession)膝昆、encryptedData、iv叠必、去請求微信后臺解密接口荚孵。

? ? ? ? ? ? ? ? b)這個接口干了啥?

微信后臺用傳之前的?session_key 和傳遞過來的 iv??去解密encryptedData纬朝。將解密后的信息返回給Laravel后臺收叶。

c)Laravel后臺接收到微信后臺返回的用戶信息之后,用里面的unionId去做和網(wǎng)站用戶的處理(此處看自己網(wǎng)站的邏輯)共苛。處理之后將token返回給小程序前端判没。接下來就可以實現(xiàn)用戶認證的請求,也就是登陸狀態(tài)隅茎。

為什么要用unionId澄峰?

因為你不確定你會不會僅僅只開發(fā)這個一個小程序,如果同一網(wǎng)站要多個小程序和公眾號辟犀,這樣用戶的open_id就很難統(tǒng)一俏竞,處理不了。所以在最開始做的時候一定要考慮到這個問題堂竟。微信開放平臺就是干這個的魂毁。自己去文檔吧。

建議laravel使用overtrue的easywechat出嘹,超級傻瓜式操作席楚。

完事了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末税稼,一起剝皮案震驚了整個濱河市酣胀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娶聘,老刑警劉巖闻镶,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丸升,居然都是意外死亡铆农,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墩剖,“玉大人猴凹,你說我怎么就攤上這事×朐恚” “怎么了郊霎?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長爷绘。 經(jīng)常有香客問我书劝,道長,這世上最難降的妖魔是什么土至? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任购对,我火速辦了婚禮,結(jié)果婚禮上陶因,老公的妹妹穿的比我還像新娘骡苞。我一直安慰自己,他們只是感情好楷扬,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布解幽。 她就那樣靜靜地躺著,像睡著了一般烘苹。 火紅的嫁衣襯著肌膚如雪躲株。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天螟加,我揣著相機與錄音徘溢,去河邊找鬼。 笑死捆探,一個胖子當著我的面吹牛然爆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播黍图,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼曾雕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了助被?” 一聲冷哼從身側(cè)響起剖张,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎揩环,沒想到半個月后搔弄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡丰滑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年顾犹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡炫刷,死狀恐怖擎宝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浑玛,我是刑警寧澤绍申,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站顾彰,受9級特大地震影響极阅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拘央,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一涂屁、第九天 我趴在偏房一處隱蔽的房頂上張望书在。 院中可真熱鬧灰伟,春花似錦、人聲如沸儒旬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栈源。三九已至挡爵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甚垦,已是汗流浹背茶鹃。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艰亮,地道東北人闭翩。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像迄埃,于是被迫代替她去往敵國和親疗韵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,610評論 0 121
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理侄非,服務(wù)發(fā)現(xiàn)蕉汪,斷路器,智...
    卡卡羅2017閱讀 134,719評論 18 139
  • 現(xiàn)在的我逞怨,對自己很不滿意者疤,無時無刻都要拿手機,很多時候都是在浮淺工作叠赦,無法專注驹马!缺乏大腦深度的思考!加入樊登...
    飛翼諾言閱讀 249評論 0 0
  • 聲明主 DEX 文件中需要的類 為 Dalvik 可執(zhí)行文件分包構(gòu)建每個 DEX 文件時,構(gòu)建工具會執(zhí)行復(fù)雜的決策...
    android_zyq閱讀 8,262評論 0 3