日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python Flask微信小程序登錄流程及登錄api實(shí)現(xiàn)代碼

瀏覽:222日期:2022-07-22 15:24:33

一、先來(lái)看看效果

Python Flask微信小程序登錄流程及登錄api實(shí)現(xiàn)代碼

接口請(qǐng)求返回的數(shù)據(jù):

Python Flask微信小程序登錄流程及登錄api實(shí)現(xiàn)代碼

二、官方登錄流程圖

Python Flask微信小程序登錄流程及登錄api實(shí)現(xiàn)代碼

三、小程序登錄流程梳理:

1、小程序端調(diào)用wx.login

2、判斷用戶是否授權(quán)

3、小程序端訪問 wx.getUserInfo

4、小程序端js代碼:

wx.login({ success: resp => { // 發(fā)送 res.code 到后臺(tái)換取 openId, sessionKey, unionId console.log(resp); var that = this; // 獲取用戶信息 wx.getSetting({ success: res => { if (res.authSetting[’scope.userInfo’]) { // 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱,不會(huì)彈框 wx.getUserInfo({ success: userResult => { var platUserInfoMap = {} platUserInfoMap['encryptedData'] = userResult.encryptedData; platUserInfoMap['iv'] = userResult.iv; wx.request({ url: ’http://127.0.0.1:5000/user/wxlogin’, data: { platCode: resp.code, platUserInfoMap: platUserInfoMap, }, header: { 'Content-Type': 'application/json' }, method: ’POST’, dataType:’json’, success: function (res) { console.log(res) wx.setStorageSync('userinfo', res.userinfo) //設(shè)置本地緩存 }, fail: function (err) { },//請(qǐng)求失敗 complete: function () { }//請(qǐng)求完成后執(zhí)行的函數(shù) }) } }) } } }) } })

5、后端服務(wù)器訪問code2session,通過code2Session這個(gè)api接口來(lái)獲取真正需要的微信用戶的登錄態(tài)session_key和 openid 和 unionid

6、后端服務(wù)器校驗(yàn)用戶信息,對(duì)encryptedData 解密微信小程序登錄后獲得session_key后,返回了encryptedData,iv的數(shù)據(jù),其中encryptedData解密后包含了用戶的信息,解密后的json格式如下:

{ 'openId': 'OPENID', 'nickName': 'NICKNAME', 'gender': GENDER, 'city': 'CITY', 'province': 'PROVINCE', 'country': 'COUNTRY', 'avatarUrl': 'AVATARURL', 'unionId': 'UNIONID', 'watermark': { 'appid':'APPID', 'timestamp':TIMESTAMP }}

7、新建解密文件——WXBizDataCrypt.py

from Crypto.Cipher import AES這邊一般會(huì)遇到ModuleNotFoundError:No module named 'Crypto'錯(cuò)誤(1)執(zhí)行pip3 install pycryptodome(2)如果還是提示沒有該模塊,那就虛擬環(huán)境目錄Lib—-site-package中查看是否有Crypto文件夾,這時(shí)你應(yīng)該看到有crypto文件夾,將其重命名為Crypto即可

import base64import jsonfrom Crypto.Cipher import AESclass WXBizDataCrypt: def __init__(self, appId, sessionKey): self.appId = appId self.sessionKey = sessionKey def decrypt(self, encryptedData, iv): # base64 decode sessionKey = base64.b64decode(self.sessionKey) encryptedData = base64.b64decode(encryptedData) iv = base64.b64decode(iv) cipher = AES.new(sessionKey, AES.MODE_CBC, iv) decrypted = json.loads(self._unpad(cipher.decrypt(encryptedData))) if decrypted[’watermark’][’appid’] != self.appId: raise Exception(’Invalid Buffer’) return decrypted def _unpad(self, s): return s[:-ord(s[len(s)-1:])]

8、Flask的/user/wxloginapi代碼:

import json,requestsfrom WXBizDataCrypt import WXBizDataCryptfrom flask import Flask@app.route(’/user/wxlogin’, methods=[’GET’,’POST’])def user_wxlogin(): data = json.loads(request.get_data().decode(’utf-8’)) # 將前端Json數(shù)據(jù)轉(zhuǎn)為字典 appID = ’appID’ # 開發(fā)者關(guān)于微信小程序的appID appSecret = ’appSecret’ # 開發(fā)者關(guān)于微信小程序的appSecret code = data[’platCode’] # 前端POST過來(lái)的微信臨時(shí)登錄憑證code encryptedData = data[’platUserInfoMap’][’encryptedData’] iv = data[’platUserInfoMap’][’iv’] req_params = { ’appid’: appID, ’secret’: appSecret, ’js_code’: code, ’grant_type’: ’authorization_code’ } wx_login_api = ’https://api.weixin.qq.com/sns/jscode2session’ response_data = requests.get(wx_login_api, params=req_params) # 向API發(fā)起GET請(qǐng)求 resData = response_data.json() openid = resData [’openid’] # 得到用戶關(guān)于當(dāng)前小程序的OpenID session_key = resData [’session_key’] # 得到用戶關(guān)于當(dāng)前小程序的會(huì)話密鑰session_key pc = WXBizDataCrypt(appID, session_key) #對(duì)用戶信息進(jìn)行解密 userinfo = pc.decrypt(encryptedData, iv) #獲得用戶信息 print(userinfo) ’’’ 下面部分是通過判斷數(shù)據(jù)庫(kù)中用戶是否存在來(lái)確定添加或返回自定義登錄態(tài)(若用戶不存在則添加;若用戶存在,返回用戶信息) --------略略略略略略略略略------------- 這部分我就省略啦,數(shù)據(jù)庫(kù)中對(duì)用戶進(jìn)行操作 ’’’ return json.dumps({'code': 200, 'msg': '登錄成功','userinfo':userinfo}, indent=4, sort_keys=True, default=str, ensure_ascii=False)

總結(jié)

到此這篇關(guān)于Python Flask微信小程序登錄詳解及登錄api實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python Flask微信小程序登錄詳解及登錄api實(shí)現(xiàn)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: 微信 Python
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av中文字幕一区| 国产精品伊人| 伊人久久av| 欧美成人精品一级| 欧美精品二区| 国产欧美二区| 国产精品毛片久久久| 国产伦精品一区二区三区千人斩| 亚洲精品免费观看| 亚洲免费福利一区| 91精品尤物| 国产精品nxnn| 69堂免费精品视频在线播放| 日韩精品一级| 国产精品亚洲一区二区在线观看| 久久99久久久精品欧美| 美女国产一区二区三区| 开心激情综合| 中文字幕在线高清| 99精品国产一区二区三区| 亚洲a一区二区三区| 亚洲高清久久| 尤物精品在线| 首页欧美精品中文字幕| 亚洲精品观看| 国产日产精品_国产精品毛片 | 黄色网一区二区| 成人精品动漫一区二区三区| 国产高潮在线| 亚洲欧洲一区二区天堂久久| 蜜臀国产一区二区三区在线播放| 日本伊人久久| 久久精品国产在热久久| 麻豆精品在线观看| а√天堂中文在线资源8| 欧美中文一区二区| 久久先锋影音| 国产精品调教| av综合电影网站| 在线亚洲欧美| 国产丝袜一区| 日韩高清欧美| 影视先锋久久| 国产精品美女午夜爽爽| 亚洲综合另类| 久久精品97| 国产一区二区三区视频在线| 91精品国产福利在线观看麻豆| 久久国产主播| 亚洲欧洲免费| 国产一区精品福利| 伊人久久亚洲美女图片| 欧美亚洲二区| 日韩成人一级| 国产一区二区三区日韩精品| 男人天堂欧美日韩| 国产一卡不卡| 日本欧美不卡| 亚洲精品乱码日韩| 中文字幕成在线观看| 天堂成人国产精品一区| 国产精品白丝一区二区三区| 久久91导航| 丝袜美腿亚洲色图| 精品久久不卡| 日韩中文字幕不卡| 国产 日韩 欧美 综合 一区| 久久成人亚洲| 国产麻豆综合| 精品一区二区三区免费看| 亚洲欧美成人综合| 国产成人免费| 欧美精品激情| 欧美一区久久久| 特黄毛片在线观看| 免费一区二区三区在线视频| 久久久久蜜桃| 国产精品久久| 亚洲va中文在线播放免费| 中文字幕日韩亚洲| 日韩电影二区| 国产精品日本一区二区三区在线| 精品1区2区3区4区| 国语精品一区| 日韩精选在线| 亚洲女同中文字幕| 国产精品麻豆久久| 日韩在线麻豆| 蜜桃一区二区三区| 成人在线免费观看网站| 日韩欧美三区| 亚洲激情黄色| 正在播放日韩精品| 日本在线成人| 久久都是精品| 精品在线99| 成人免费一区| 久久国产人妖系列| 久久国产66| 99视频在线精品国自产拍免费观看| 国产中文字幕一区二区三区| 青草国产精品久久久久久| 丝袜国产日韩另类美女| 久久激情中文| 老牛影视精品| 久久伊人国产| 奇米色欧美一区二区三区| 天堂va蜜桃一区二区三区| 精品欧美一区二区三区在线观看| 国产精东传媒成人av电影| 日本亚州欧洲精品不卡| 亚洲欧美日韩国产| 91精品国产自产在线观看永久∴ | 悠悠资源网久久精品| 亚洲涩涩在线| 成人午夜网址| 精品久久久久中文字幕小说| 国产欧美另类| 久久国产精品色av免费看| 日韩在线网址| 亚洲精品亚洲人成在线观看| 久久激情一区| 免费污视频在线一区| 中国字幕a在线看韩国电影| 久久精品国产99国产| 国产精品hd| 国产精品亲子伦av一区二区三区| 日韩精品欧美大片| 美女久久网站| 亚洲色图网站| 蜜臀精品一区二区三区在线观看| 午夜在线播放视频欧美| 影音先锋久久| 99xxxx成人网| 中文久久精品| 免费成人av在线播放| av不卡在线看| 久久不射中文字幕| 喷白浆一区二区| 亚洲免费毛片| 国产精品香蕉| 国产成人在线中文字幕| av免费不卡国产观看| 99久久亚洲精品| 尹人成人综合网| 亚洲精品成人一区| 国产精品一区二区美女视频免费看 | 久久精品人人| 亚洲不卡av不卡一区二区| 日产精品一区二区| 国产高清不卡| 免费视频一区三区| 最新亚洲国产| 国产精品男女| av资源中文在线天堂| 99久久精品网| 综合激情网...| 国产精品久久久久av蜜臀| av中文字幕在线观看第一页| 欧美特黄一区| 亚洲aⅴ网站| 国产精品主播| 国产精品.xx视频.xxtv| 麻豆中文一区二区| 蜜臀a∨国产成人精品| 天堂av在线一区| 日本一区二区三区中文字幕| 99国内精品| 亚洲欧洲日韩精品在线| 日韩精品一区二区三区av| 欧美日韩夜夜| 久久a爱视频| 91精品啪在线观看国产18| 亚洲天堂久久| 亚洲人成网77777色在线播放 | 日韩不卡免费高清视频| 日本精品在线中文字幕| 婷婷综合五月| 亚洲激情中文| 91精品啪在线观看国产爱臀| 国产亚洲欧美日韩在线观看一区二区 | 人在线成免费视频| 久久久久99| 亚洲女同中文字幕| 亚洲九九精品| 国产亚洲欧美日韩在线观看一区二区| а√天堂8资源中文在线| 激情久久久久久久| 日韩一区精品字幕| 亚洲无线一线二线三线区别av| 少妇精品久久久一区二区| 欧美日韩xxxx| 高清在线一区| 国产一级一区二区| 久久超级碰碰| 欧美日中文字幕| 日韩国产91| 成年男女免费视频网站不卡| 国产日韩专区| 国产一区二区精品久|