javascript - 前后端分離的項目中如何使用微信授權登陸?
問題描述
我的想法是點擊登錄按鈕之后進入前端的一個登錄中轉頁面,這個中轉頁面的后端邏輯中通過code參數,向https://api.weixin.qq.com/sns...這個API獲取到用于訪問該用戶信息的access_token的同時在數據庫里面保存一個access_token與微信用戶openid的對應關系,并且向前端set一個值為該access_token的cookie。然后前端各種操作都帶上這個cookie,后端通過這個cookie找到對應的openid,并且通過服務端腳本上的app_secret,access_token等參數進行各種操作提交,然后完成操作。
我這個思路是否有什么不對的地方嘛?想問問各位在前后端分離項目中是如何做微信登陸授權的?
問題解答
回答1:第三方授權登陸的話。。。你得有自己的用戶系統吧。所以數據庫存的是openid,access_token和你用戶系統user_id的表。
前端的操作除非是需要訪問微信API的,需要帶上access_token,這時有兩種辦法,一種是把access_token寫到頁面上去,還有一種是用戶請求你的服務器的api,然后你服務器從數據庫取出access_token然后請求微信api。通常時使用后者的,因為一般的授權登陸的接口除了需要access_token以外,還會需要比方說appid和secret_code之類的,而secret_code通常是不能暴露的。
用戶的各種操作可以使用token來驗證,這個token是你用戶系統生成的token,這個token可以放到cookie中。
相關文章:
1. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?2. 新人求教MySQL關于判斷后拼接條件進行查詢的sql語句3. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現存在即更新應該使用哪個標簽?4. mysql - 千萬數據 分頁,當偏移量 原來越大時,怎么優化速度5. php - 公眾號文章底部的小程序二維碼如何統計?6. mysql - 表名稱前綴到底有啥用?7. mysql - 數據庫表中,兩個表互為外鍵參考如何解決8. mysql - 這種分級一對多,且分級不平衡的模型該怎么設計表?9. mysql - 數據庫建字段,默認值空和empty string有什么區別 11010. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf
