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
class OpenId:
def init(self, jscode):
self.url = ‘https://api.weixin.qq.com/sns/jscode2session’
self.app_id = env.str(‘APPID’)
self.app_secret = env.str(‘APPSECRET’)
self.jscode = jscode
def get_openid(self):
url = self.url + “?appid=” + self.app_id + “&secret=” + self.app_secret + “&js_code=” + self.jscode + “&grant_type=authorization_code”
res = requests.get(url)
try:
openid = res.json()[‘openid’]
session_key = res.json()[‘session_key’]
except KeyError:
return ‘fail’
else:
return openid, session_key
#小编整理一套Python资料和PDF,有需要Python学习资料可以加学习群:631441315 ,反正闲着也是闲着呢,不如学点东西啦~~
后端返回openid接口实现
这里只使用简单的FBV视图
注:前端传来的值无法从request.POST中接收到,只能使用如下方法
@require_http_methods([‘POST’])
@csrf_exempt
def GetOpenIdView(request):
data = json.loads(request.body)
jscode = data[‘jscode’]
openid, session_key = OpenId(jscode).get_openid()
return JsonResponse({
‘openid’: openid,
‘session_key’: session_key
})
后端登录接口实现
如果不存在用户则自动创建
为了简单,用户名和密码都是openid
@require_http_methods([‘POST’])
@csrf_exempt
def login_or_create_account(request):
data = json.loads(request.body)
print(data)
openid = data[‘openid’]
nickname = data[‘nickname’]
avatar_url = data[‘avatar_url’]
gender = data[‘gender’]
try:
user = User.objects.get(username=openid)
except User.DoesNotExist:
user = None
if user:
user = User.objects.get(username=openid)
else:
user = User.objects.create(
username=openid,
password=openid,
nickname=nickname,
avatar_url=avatar_url,
gender=gender
)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
1401c05e862fe4e9.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)