我这是最基础的,只能做到获取openid这个样子,其余的防护之类的都没有。
python3+django2,小程序的最新验证方式:
#app.js
onLaunch: function () {
var that = this;
// 登录
if (!that.globalData.openid){
wx.login({
success: res => {
if (res.code) {
//发起网络请求
扫描二维码关注公众号,回复:
3419235 查看本文章
wx.request({
url: 'https://localhost/login',
data: {
code: res.code,
},
success:function(res) {
if(res.statusCode==200){
that.globalData.openid = res.data.data.openid;
}
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
}
#views.py
def onlogin(r): code = r.GET['code'] appid = "wxcdffcac5b78ec09e" secret = "cda8ec4bc9e8e30077c5105fd0ee12a1" url = "https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+secret+"&js_code="+code # 增加header headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'} request = urllib.request.Request(url, headers=headers) response_data = urllib.request.urlopen(request) # 在urllib里面 判断是get请求还是post请求,就是判断是否提交了data参数 response = response_data.read().decode('utf-8') response_json = json.loads(response) openid = response_json['openid'] user = User.objects.get_or_create(openid=openid) data = { 'openid':openid } return JsonResponse(data)