javascript - 前后端分離的項(xiàng)目中如何使用微信授權(quán)登陸?
問(wèn)題描述
我的想法是點(diǎn)擊登錄按鈕之后進(jìn)入前端的一個(gè)登錄中轉(zhuǎn)頁(yè)面,這個(gè)中轉(zhuǎn)頁(yè)面的后端邏輯中通過(guò)code參數(shù),向https://api.weixin.qq.com/sns...這個(gè)API獲取到用于訪問(wèn)該用戶信息的access_token的同時(shí)在數(shù)據(jù)庫(kù)里面保存一個(gè)access_token與微信用戶openid的對(duì)應(yīng)關(guān)系,并且向前端set一個(gè)值為該access_token的cookie。然后前端各種操作都帶上這個(gè)cookie,后端通過(guò)這個(gè)cookie找到對(duì)應(yīng)的openid,并且通過(guò)服務(wù)端腳本上的app_secret,access_token等參數(shù)進(jìn)行各種操作提交,然后完成操作。
我這個(gè)思路是否有什么不對(duì)的地方嘛?想問(wèn)問(wèn)各位在前后端分離項(xiàng)目中是如何做微信登陸授權(quán)的?
問(wèn)題解答
回答1:第三方授權(quán)登陸的話。。。你得有自己的用戶系統(tǒng)吧。所以數(shù)據(jù)庫(kù)存的是openid,access_token和你用戶系統(tǒng)user_id的表。
前端的操作除非是需要訪問(wèn)微信API的,需要帶上access_token,這時(shí)有兩種辦法,一種是把a(bǔ)ccess_token寫到頁(yè)面上去,還有一種是用戶請(qǐng)求你的服務(wù)器的api,然后你服務(wù)器從數(shù)據(jù)庫(kù)取出access_token然后請(qǐng)求微信api。通常時(shí)使用后者的,因?yàn)橐话愕氖跈?quán)登陸的接口除了需要access_token以外,還會(huì)需要比方說(shuō)appid和secret_code之類的,而secret_code通常是不能暴露的。
用戶的各種操作可以使用token來(lái)驗(yàn)證,這個(gè)token是你用戶系統(tǒng)生成的token,這個(gè)token可以放到cookie中。
相關(guān)文章:
1. 如何解決docker宿主機(jī)無(wú)法訪問(wèn)容器中的服務(wù)?2. javascript - 如何使用nodejs 將.html 文件轉(zhuǎn)化成canvas3. angular.js - 輸入郵箱地址之后, 如何使其自動(dòng)在末尾添加分號(hào)?4. javascript - html5的data屬性怎么指定一個(gè)function函數(shù)呢?5. python - Scrapy存在內(nèi)存泄漏的問(wèn)題。6. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境7. docker-compose中volumes的問(wèn)題8. java如何生成token?9. javascript - 后臺(tái)管理系統(tǒng)左側(cè)折疊導(dǎo)航欄數(shù)據(jù)較多,怎么樣直接通過(guò)搜索去定位到具體某一個(gè)菜單項(xiàng)位置,并展開當(dāng)前菜單10. javascript - Web微信聊天輸入框解決方案
