千家信息网

怎么用python代码实现小程序登录流程时序

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"怎么用python代码实现小程序登录流程时序"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用python代码实现小程序登录流程时序"文章
千家信息网最后更新 2026年11月03日怎么用python代码实现小程序登录流程时序

这篇文章主要介绍"怎么用python代码实现小程序登录流程时序"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用python代码实现小程序登录流程时序"文章能帮助大家解决问题。

小程序登录

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。

登录流程时序

说明:

  • 调用wx.login()获取临时登录凭证code,并回传到开发者服务器。

  • 调用auth.code2Session接口,换取用户唯一标识 OpenID和会话密钥 session_key。

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

注意:

  • 会话密钥session_key是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。

  • 临时登录凭证 code 只能使用一次

小程序的登录总结

1 小程序端执行wx.login()获取code

2 将1中的code发送到后端,后端调用auth.code2Session这个接口,得到openid和session_key

3 自定义登入状态,我们生成一个key与openid和session_key相绑定。把key返回到小程序中

4 小程序端保存,然后下次请求需要登入的接口的时候,把key带上。

案例

# app.js的onLaunch中   因为登录是用户感觉不到的App({  onLaunch: function () {    let that = this    // 登录    wx.login({      success: res => {        // 发送 res.code 到后台换取 openId, sessionKey, unionId        console.log(res.code)   //拿到code        wx.request({          url:that.globalData.baseurl+"/login/",          data:{'code':res.code},          method:'POST',          success(e){            console.log(e.data)            // wx.setStorageSync("token", e.data.data.token)                      }        })      }    }),    globalData: {    userInfo: null,    baseurl:"http://127.0.0.1:8000"  }# dango后台中# urls.py 路由中path('login/', user.Login.as_view()),# user.py中from rest_framework.views import APIViewfrom rest_framework.response import Responsefrom api.wx import wx_loginimport hashlib, timefrom django.core.cache import cachefrom api.models import Wxuserclass Login(APIView):    def post(self, request):        param = request.data        print(request.data)        if not param.get('code'):            return Response({"status": 1, "msg": '缺少参数'})        else:            code = param.get("code")            user_data = wx_login.get_login_info(code)            if user_data:                val = user_data['session_key'] + "&" + user_data['openid']                md5 = hashlib.md5()                md5.update(str(time.clock()).encode("utf-8"))                key = md5.hexdigest()                cache.set(key, val)  # 放进内存redis库中,把key传给前端当token.下次前台带着key就能拿到val                has_user = Wxuser.objects.filter(openid=user_data['openid']).first()  # 判断openid是否存在                if not has_user:                    Wxuser.objects.create(openid=user_data['openid'])                return Response({                    "status": 0,                    "msg": "ok",                    "data": {"token": key}                })            else:                return Response({"status": 2, "data": "无效的code"})# models.py中:from django.db import modelsclass Wxuser(models.Model):    id = models.AutoField(primary_key=True)    openid=models.CharField(max_length=255)    name = models.CharField(max_length=50)    avatar = models.CharField(max_length=200)    language = models.CharField(max_length=50)    province = models.CharField(max_length=50)    city = models.CharField(max_length=50)    country = models.CharField(max_length=50)    #gender = models.CharField(max_length=50)    creat_time = models.DateTimeField(auto_now_add=True)    update_time = models.DateTimeField(auto_now=True)    def __str__(self):        return self.openid# settings.py中:自己注册的微信小程序信息AppId=""AppSecret=""code2Session="https://api.weixin.qq.com/sns/jscode2session?appid={}&secret={}&js_code={}&grant_type=authorization_code"# wx_login.py中:from api.wx import settingsimport requestsdef get_login_info(code):    # 拼接路径    code_url = settings.code2Session.format(settings.AppId,settings.AppSecret,code)    response = requests.get(code_url)  # 返回的是json数据    json_response = response.json()    # 把json数据转换为字典    if json_response.get('session_key'):        return json_response    else:        return False# cache缓存配置redis数据库

关于"怎么用python代码实现小程序登录流程时序"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

登录 程序 用户 密钥 数据 时序 流程 代码 开发者 接口 服务器 标识 知识 开发 服务 凭证 后台 案例 行业 身份 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 互联网科技工作委员会 科技企业和互联网企业 互联网科技金融 互联网科技作文 互联网科技公司官网 浩特互联网科技 互联网科技有限公司 翻译 互联网 科技服务平台 顶级互联网科技成果有哪些 重庆互联网医院沙龙医盟信息科技 崇明区互联网教育科技诚信经营 乌苏新华互联网科技做什么的 有人说阿里系是互联网科技企业 工业互联网科技创业 广州梦谷互联网科技有限公司领导 上海万顺科技互联网有限公司招聘 数字互联网科技有限公司 恒生科技指数 中概互联网 山东蛋芒互联网科技有限公司 互联网为科技 互联网的科技创新 丰台科技园 互联网 郑州华宇互联网科技 联恩商钥互联网科技有限公司 中国最先进互联网科技公司 宁波青枫互联网科技有限公司 广州有谷有贝互联网科技有限公司 易租星互联网科技有限公司 保山浩联互联网科技有限公司
0