微信小程序登錄 .net 后端實現


  •  1:前端獲取用戶憑證code 傳送請求獲得openId(用戶唯一標識)    

在頁面的Onlaunch 方法中,調用wx.login 方法

https://developers.weixin.qq.com/miniprogram/dev/api/wx.login.html

 

 

這一步獲取登錄憑證,通過憑證調用本地后台接口,獲取用戶openId sessionKey等,本地后台的接口調用方法參考第四步

注意點:

      1:通常我們會把用戶的session_key 存取到后台的session會話中,但是在微信小程序不會自動保存用戶的session id, 這就需要將返回的session id 存在local storage中,當再次向后台請求時,在header 中帶上 cookie , 看第二步圖

      2:that.globalData.info = res.data.data.string, 將一個object 里的string 賦值給globalData.info, 這個時候info的值仍然是indefined, 而 res.data.data是一個對象,會賦值成功,這是為什么呢?參考https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/06datatype.html

 

  • 2:前端獲取用戶信息並發送本地接口請求解碼

 

 

 

注意點

1:當用戶未授權登錄時,此時不會彈框,需要跳出授權只能用<button open-type="getUserInfo"/>

2:向后台發送解碼請求時,在header傳 cookie, 標識是同一個會話,如圖

 

 

 

  • 3:后端獲取用戶 session_key 和 open id(.net)

 

 

注意點

   1:如果獲取成功, errcode不會返回

   2:  使用Asp.net core Session

      安裝包:Microsoft.AspNetCore.Session

      在startup.cs 中進行配置,添加服務和注入session,網上有參考,不贅述

   3: 使用vs 進行build時,以管理員模式運行

   4: 微信要求服務器使用TLS1.2協議,如何在windows中升級TLS1.2

      更改注冊表,網上有資源不贅述

 

  •  4:后端進行加密信息解碼

 

 

.net 加密解碼回顧:

 

常見的加密算法包括md5,sha1,aes,base64, 而 AES是可逆的對稱加密算法

Base64是一種編碼方式,就是把一串二進制轉換成另外一種二進制串

用於圖片存儲等,即把圖片轉換成一種二進制碼,從而計算機能打印

 

AES:

https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.aesmanaged?redirectedfrom=MSDN&view=netframework-4.7.2

.net core session

TLS1.2

JsonConvert 反序列化時, 如果遇到特殊字符時,會報錯的解決方法

參考資源

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html


免責聲明!

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



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