摘要:我接觸已經很久了,其中微信的就是我貢獻的代碼,然而當時做的時候比較年輕,而且這個項目處于一個很大的代碼重構中,借這次機會重新用正確的姿勢接入了一下三方登錄,可以當做一個學習接入三方的。
為什么要接入三方登錄
如果你的微信服務器要做復雜的邏輯,比如html5、給用戶提供高級的服務,并且有很好看的頁面等等,這種時候你就需要一個正常的web服務器,用戶打通就需要做三方登錄了。
而如果你決定直接用weixin_server做web服務器完全沒有問題,80端口給微信留著,剩下的你可以按照一個正常的django項目開發,前端可以接入weixin sdk。
python-socail-auth我接觸python-social-auth已經很久了,其中微信的backend就是我貢獻的代碼,然而當時做的時候比較年輕,而且這個項目處于一個很大的代碼重構中,借這次機會重新用正確的姿勢接入了一下三方登錄,可以當做一個學習接入三方的demo。順便提了weixin app登錄的backend的一個pr。
如果你想用這個weixin_server項目接入三方登錄,可以參考feature/myauth分支,三方用的python-social-auth weixin app backend剛提pr不知道作者什么時候合并,如果要用先-e安裝我的分之的這個版本我的python-social-auth,分支master_origin
用戶信息django默認的User信息肯定是不夠用的,按照以前開發的尿性,我們需要一個UserProfile做onetoone的關聯,記錄額外信息。myauth/models.py
配置參考文檔配置即可,可以參考我的配置。
注意配置中SOCIAL_AUTH_通用配置 | SOCIAL_AUTH_QQ_qq的配置的是因為這個地方源碼 social/utils.py的代碼來做到的。
所謂的正確姿勢關鍵就是這些pipeline,這是所謂的正確姿勢。
SOCIAL_AUTH_PIPELINE = ( "social.pipeline.social_auth.social_details", "social.pipeline.social_auth.social_uid", "social.pipeline.social_auth.auth_allowed", "social.pipeline.social_auth.social_user", "social.pipeline.user.get_username", "social.pipeline.user.create_user", "social.pipeline.social_auth.associate_user", "social.pipeline.social_auth.load_extra_data", "social.pipeline.user.user_details", "myauth.pipeline.user.save_profile", )
源碼的action.py,通過do_complete方法我們可以看到,微信在做pipeline的時候是backend.continue_pipeline是一直根據配置的pipeline往下調用的,文檔講解的很清楚(比當年好多了),pipeline會暫時中斷這次auth,做一些你想做的事情(用戶名轉化,根據微信的unioid關聯唯一用戶等等),然后回來繼續,然而我當年是從中間某個位置直接跳轉出去就不從這繼續了,好吧現在用了正確的姿勢,例如額外信息存儲myauth.pipeline.user.save_profile。
所以我的這個項目其實是錯誤的示范,star的同學們對不起了。
過完pipeline之后微信會根據你settings.py中的各種跳轉url根據不同的邏輯做跳轉,你需要把其他的業務邏輯放在對應的view里面即可。
然后你加個next參數做跳轉就可以實現微信app里面的登錄的功能了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45420.html
摘要:借著這個需求體會了下微信開發的兩種不同類型非端口的兩種開發,以及的一些正確姿勢。關于用戶微信登錄的事情我們通過已經解決了參考我的上一篇博客微信公眾號開發小記接入三方登錄,所以可以直接用的裝飾器完成這種事情。 描述 假設的我們的服務號有這么一些功能,比如底部有按鈕,點擊會有一些復雜的功能,這時候可能就需要一個用戶系統,有用戶系統就經常想要做什么分享邀請新用戶之類的,這時候就又有幾種方式,...
摘要:描述由于馬上要做一波公眾號開發,今天先調研,把基本的服務器接起來。手腳架地址文檔微信公眾號公眾號開發首先你要有個公眾號,這里就不說了按照流程申請。腳手架的說明微信公眾號接入的時候要做很多事情,為了簡化開發,提供一個版本的服務器。 描述 由于馬上要做一波公眾號開發,今天先調研,把基本的服務器接起來。微信公眾號服務器在接入的時候要做一些煩躁的事情,改配置的時候要進行握手,api調用要做一些...
摘要:微信在做一些操作是需要用到生成二維碼等而每天接口的調用上限為,需要自己做緩存文檔講了幾種方式,我覺得放在中拿比較妥當。微信菜單會緩存分鐘,你可以取消關注,然后在關注查看菜單變化效果。 描述 微信公眾號開發基本分為2大種類型 1.用戶直接做了某些操作(回復信息、訂閱、掃碼、發語音、點按鈕等),此時這些信息微信會發送到微信服務器的80端口,這是一種開發類型;2.通過連接(按鈕、文章)引導用...
摘要:相關資料博客微信第三方登錄接口開發端微信掃碼登錄文檔移動端網頁微信公眾平臺授權登錄微信開放平臺登錄與微信公眾平臺授權登錄區別在哪微信登錄接口幾個問題微信登錄的和區別百分號編碼在線轉換第三方登錄 微信登錄接口開發須知 APP登錄接口 PC網站登錄接口 微信移動網頁登錄接口(又稱微信公眾號授權登錄) 移動端非微信自帶瀏覽不支持微信登錄 微信移動網頁登錄接口(又稱微信公眾號授權登錄) ...
閱讀 2817·2021-11-24 09:39
閱讀 3387·2021-11-19 09:40
閱讀 2257·2021-11-17 09:33
閱讀 3749·2021-10-08 10:04
閱讀 3037·2021-09-26 09:55
閱讀 1663·2021-09-22 15:26
閱讀 927·2021-09-10 10:51
閱讀 3124·2019-08-30 15:44