国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

微信小程序登錄對接Django后端實現JWT方式驗證登錄詳解

2024-07-22 01:17:51
字體:
來源:轉載
供稿:網友

先上效果圖


點擊授權按鈕后可以顯示部分資料和頭像,點擊修改資料可以修改部分資料。

流程

1.使用微信小程序登錄和獲取用戶信息Api接口
2.把Api獲取的用戶資料和code發送給django后端
3.通過微信接口把code換取成openid
4.后端將openid作為用戶名和密碼
5.后端通過JSON web token方式登錄,把token和用戶id傳回小程序
6.小程序將token和用戶id保存在storage中
下次請求需要驗證用戶身份的頁面時,在header中加入token這個字段

微信小程序代碼

獲取用戶信息的方法這里不展示,可以在微信小程序文檔中看到

登錄方法

login: function(event) { wx.login({  success: res => {  console.log(res)  //請求后端換取openid的接口  http.request({   url: '/get-openid/',   method: 'POST',   data: {   //將code傳到后端   jscode: res.code   },   success: res => {   //獲取到openid作為賬號密碼   console.log(res)   console.log(app.globalData.userInfo)   http.request({    url: '/wx-login/',    method: 'POST',    data: {    openid: res.openid,    session_key: res.session_key,    nickname: app.globalData.userInfo.nickName,    avatar_url: app.globalData.userInfo.avatarUrl,    gender: app.globalData.userInfo.gender    },    //登錄成功后返回token保存在storage中    success: res => {    console.log(res)    //token存入storage    wx.setStorageSync('jwt_token', res.token)    wx.setStorageSync('user_id', res.user_id)    this.reFreshUserProfile()    //登錄狀態置為true    this.setData({     isLogin: true,     hasUserInfo: true    })    app.globalData.isLogin = true    }   })   }  })  } }) }

注銷方法

 logout: function(res) { this.setData({  isLogin:false,  hasUserInfo:false }) app.globalData.isLogin = false wx.removeStorageSync('jwt_token') wx.removeStorageSync('user_id') },

Django后端的實現

首先安裝djangorestframework-jwt

這里不使用他默認的登錄接口,如下所示


它提供了手動簽發token和解密token的功能,因此最好自己實現

手動簽發token

 jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER payload = jwt_payload_handler(user) token = jwt_encode_handler(payload)

手動解密token

 jwt_decode_handler = api_settings.JWT_DECODE_HANDLER user_dict = jwt_decode_handler(token) user_id = user_dict['user_id']

后端換取openid

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垣曲县| 富民县| 舒城县| 赤城县| 广宗县| 沅陵县| 枞阳县| 长丰县| 周至县| 宁城县| 长岭县| 桃园县| 墨脱县| 运城市| 元阳县| 牙克石市| 浦城县| 广西| 嘉鱼县| 旬阳县| 遂溪县| 保德县| 东丰县| 行唐县| 特克斯县| 玛纳斯县| 饶阳县| 榆社县| 化州市| 宝应县| 团风县| 诸城市| 舟曲县| 旌德县| 大理市| 九龙城区| 报价| 连州市| 高碑店市| 襄樊市| 卢氏县|