django与小程序其二,登录验证

我这是最基础的,只能做到获取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)

猜你喜欢

转载自blog.csdn.net/lala55lan20/article/details/82835431