网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

小程序使用cryptography模塊生成3rd_session

發布時間:2018-05-08 10:57 所屬欄目:小程序開發教程

圖片來自于微信小程序文檔

微信小程序的身份認證不同于用戶名+密碼換取token類型的身份認證,因為小程序是運行在微信之上的,用戶信息在微信服務器,以下說明開發者如何針對小程序用戶做身份認證.

如果你的小程序時動態的,需要和后臺做數據交互,那么你需要在小程序啟動時調用wx.login()方法,該方法會從微信服務器獲取一個code,然后將這個code發送至開發者服務器,在第三方開發者服務器中利用code再從微信服務器獲取一個密鑰(session_key)和用戶唯一標識(openid).

如果第三方服務器有了用戶唯一標識,那么開發者就知道某個請求來自于哪個用戶,從而針對該用戶做數據的增刪改查等.

現在有了openid,你不能直接將明文發送給客戶端,明文直接在網絡上傳輸有安全風險,我們需要將它加密生成3rd_session,這個密鑰(session_key)就是用來給openid加密用的,注意這個3rd_session應該是可以解密的,因為3rd_session發送給客戶端,客戶端在請求數據時需要將這個3rd_session放在請求頭中發送給開發者服務器作為身份憑證,開發者將其解密得到openid.

以下給出Python的加密解密模塊cryptography的使用方法,這大概是我知道的使用起來最簡單的Python加密解密模塊了:

 

				
  1. from cryptography.fernet import Fernet
  2.  
  3. # 加密得到3rd_session
  4. def get_3rd_session(self, openid):
  5. key = Fernet.generate_key()
  6. cipher = Fernet(key)
  7. encrypted_data = cipher.encrypt(openid.encode('utf-8'))
  8. return encrypted_data, key

以上代碼沒有用session_key作為key來加密openid,直接用generate_key()方法生成一個  key,注意這個key也應該保存下來,因為解密時需要加密時的key.

 

				
  1. def get_openid_from_encrypted_data(self, encrypted_data, key):
  2. cipher = Fernet(key)
  3. raw_data = cipher.decrypt(encrypted_data)
  4. return raw_data
  5.  


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/24312.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×