第三方網站實現綁定微信登陸


最近在公司負責一個ROR項目,基於Rabel的論壇產品,老板想把這個產品植入微信,讓我做微信綁定登陸。微信開發文檔還是很不錯的,折騰了幾天,把這個功能拿下了。

 

微信獲取用戶資料文檔:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

 

如何獲取用戶資料我就不贅述了,文檔上說明很清楚,我主要說說實現微信綁定與登陸的思路。

 

要點包括但不限於:

  • 保存用戶的數據表Person中,添加字段weixin_openid,用於保存微信與公眾號唯一的用戶標識
  • 在服務端實現URL跳轉時保留查詢字符串的功能,具體例子如
    • 未登錄用戶訪問/home?code=123456,此時應跳轉到/login?code=123456,而非/login
  • 登陸頁面有三種形式
    • 最原始的用戶密碼登陸。此形式將不包含查詢字符串
      • 此時輸入用戶密碼登陸
    • 已綁定微信的用戶快捷登陸方式。此形式會包含查詢字符串?code=123456
      • 此時服務器端利用code獲取openid,若成功找到綁定的用戶,直接登陸
    • 一個用戶想要進行微信綁定,點擊綁定入口后,由於未登錄而跳轉到的登陸頁面。此形式會包含查詢字符串?code=123456&state=bind
      • 服務端檢測到state=bind,得知是綁定操作,暫時不去獲取openid,待用戶登陸跳轉后,再去獲取openid進行綁定。(這就是第二點保留字符串跳轉的作用)
  • 魯棒性,包括
    • 查詢字符串錯誤或缺失的處理
    • 微信綁定的邏輯性處理,例如一個微信只能綁定一個賬號,一個賬號只能綁定一個微信,不能重復綁定

 

附一個當時做的微信綁定的流程圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM