小程序自动登录流程,小程序开发登录流程
本文主要为大家介绍python代码实现小程序的登录案例。有需要的朋友可以参考一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010公文小程序登录流程计时说明:注:小程序登录汇总案例
目录
https://developers . weixin . QQ.com/mini program/dev/framework/open-ability/log in . html
官方文档
小程序可以通过微信官方提供的登录能力,轻松获取微信提供的用户ID,在小程序内快速建立用户体系。
小程序登录
登录流程时序
调用wx.login()获取临时登录凭证代码,并将其发送回开发人员服务器。调用auth.code2Session接口,换取用户的唯一标识符OpenID和会话密钥session_key。之后开发者服务器可以根据用户标识生成自定义的登录状态,用于后续业务逻辑中前端交互时识别用户身份。
说明:
会话密钥session_key是对用户数据进行加密和签名的密钥。为了应用本身的数据安全,开发者服务器不应该向小程序发送会话密钥,也不应该向外界提供这个密钥。临时登录凭证代码只能使用一次。
注意:
1 applet执行wx.login()获取代码。
将2中的代码发送到后端,后端调用接口auth.code2Session获取openid和session_key。
3自定义登录状态,我们生成一个密钥与openid和session_key绑定。将密钥返回给小程序
保存在小程序端,下次请求需要登录的接口时带上密钥。
小程序的登录总结
# app.js onLaunch,因为用户察觉不到登录。
应用程序({
onLaunch:函数(){
让那个=这个
//登录
wx.login({
成功: res={
//将res.code发送到后台,换取openId、sessionKey、unionId
Console.log(res.code) //获取代码
wx.request({
URL : that . global data . base URL /log in/,
data:{code:res.code},
方法: 发布:
成功(e){
console.log(电子数据)
//wx.setStorageSync(token ,e.data.data.token)
}
})
}
}),
globalData: {
userInfo:为空,
baseurl : http://27 . 0 . 0 http://46367
}
#背景中的dango
路线中的# urls.py
路径( login/),用户。Login.as_view()),
# user.py
从rest_framework.views导入APIView
从rest_framework.response导入响应
从api.wx导入wx_login
导入hashlib,时间
从django.core.cache导入缓存
从api.models导入Wxuser
班级登录(APIView):
def post(自身,请求):
param=request.data
打印(请求.数据)
如果不是param.get(code):
返回响应({status 3360 1, msg 3360 缺少参数 })
else:
code=param.get(code )
user _ data=wx _ log in . get _ log in _ info(代码)
如果用户数据:
val=user _ data[ session _ key ] user _ data[ OpenID ]
md5=hashlib.md5()
md5.update(str(time.clock())。编码( utf-8 ))
key=md5.hexdigest()
Cache.set(key,val) #放在内存redis库中,密钥作为令牌传递给前端。下次,你可以在前台用钥匙找到瓦尔。
has _ user=wx user . objects . filter(OpenID=user _ data[ OpenID ])。first () #确定OpenID是否存在。
如果不是has_user:
wx user . objects . create(OpenID=user _ data[ OpenID ])
返回响应({
状态 : 0,
消息 : 好,
数据 : { 令牌 :密钥}
})
else:
返回响应({ 状态 3360 2,数据 3360 无效代码 })
# models.py:
从django.db导入模型
Wxuser类(型号。型号):
id=型号。AutoField(primary_key=True)
openid=模型。CharField(max_length=255)
名称=型号。CharField(max_length=50)
头像=模特CharField(max_length=200)
语言=模型CharField(max_length=50)
省份=车型CharField(max_length=50)
城市=模特CharField(max_length=50)
国家=型号CharField(max_length=50)
#性别=模特CharField(max_length=50)
创建时间=模型datetime字段(auto _ now _ add=True)
update_time=模型.DateTimeField(auto_now=True)
def __str__(self):
返回self.openid
# settings.py中:自己注册的微信小程序信息
AppId=
AppSecret=
代码2会话= https://API。微信。QQ。 com/SNS/jscode 2会话? appid={ } secret={ } js _ code={ } grant _ type=authorization _ code
# wx_login.py中:
从api.wx导入设置
导入请求
极好的获取登录信息(代码):
# 拼接路径
code _ URL=设置。代码2会话。格式(设置.AppId,设置AppSecret,代码)
响应=requests.get(代码网址)#返回的是数据数据
json_response=response.json() #把数据数据转换为字典
如果JSON _ response。get(会话密钥):
返回json_response
else:
返回错误的
#缓存缓存配置存储数据库
以上就是大蟒代码实现小程序登录流程时序总结的详细内容,更多关于大蟒小程序登录时序总结的资料请关注盛行信息技术软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。