返回顶部
首页 > 资讯 > 后端开发 > Python >python代码实现小程序登录流程时序总结
  • 463
分享到

python代码实现小程序登录流程时序总结

2024-04-02 19:04:59 463人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录官方文档小程序登录登录流程时序说明:注意:小程序的登录总结案例官方文档 https://developers.weixin.qq.com/miniprogram/dev/fram

官方文档

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

小程序登录

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

登录流程时序

说明:

  • 调用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 apiView
from rest_framework.response import Response
from api.wx import wx_login
import hashlib, time
from Django.core.cache import cache
from api.models import Wxuser
class 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 models
class 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 settings
import requests
def 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代码实现小程序登录流程时序总结的详细内容,更多关于Python小程序登录时序总结的资料请关注编程网其它相关文章!

--结束END--

本文标题: python代码实现小程序登录流程时序总结

本文链接: https://lsjlt.com/news/117305.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python代码实现小程序登录流程时序总结
    目录官方文档小程序登录登录流程时序说明:注意:小程序的登录总结案例官方文档 https://developers.weixin.qq.com/miniprogram/dev/fram...
    99+
    2024-04-02
  • 怎么用python代码实现小程序登录流程时序
    这篇文章主要介绍“怎么用python代码实现小程序登录流程时序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python代码实现小程序登录流程时序”文章能帮助大家解决问题。小程序登录小程序可以...
    99+
    2023-06-30
  • 微信小程序详细登录流程(图解+代码流程)
    💂 个人网站: 【紫陌】【笔记分享网】 💅 想寻找共同学习交流、共同成长的伙伴, 请点击【前端学习交流群】 微信小程序的登录和web端的登录有一点是不同的,小程序需要和微信的服务...
    99+
    2023-08-31
    前端 小程序 微信小程序 Powered by 金山文档
  • 【微信小程序】实现微信小程序登录(附源码)
    实现微信小程序登录 文章目录 实现微信小程序登录登录功能简介界面展示代码展示 登录功能简介 通过点击登录按钮,调用微信接口wx.getUserProfile拿到微信的个人信息,先检查是...
    99+
    2023-09-07
    微信小程序 小程序 微信 前端
  • 微信小程序Java登录流程怎么实现
    这篇“微信小程序Java登录流程怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序Java登录流程怎么实现”文...
    99+
    2023-06-26
  • 微信小程序的登录流程
    一、背景 传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录。 服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互,每当token过期,用户都需要重新登录。 而...
    99+
    2023-09-10
    微信小程序 小程序 微信
  • 【小程序】实现登录的流程与封装思路
    文章目录 小程序登录流程演练基本介绍基本演练代码优化 小程序登录流程演练 基本介绍 为什么需要用户登录? 增加用户的粘性和产品的停留时间; 如何识别同一个小程序用户身份? ...
    99+
    2023-10-20
    小程序 javascript 前端
  • 微信小程序登录页面代码
    微信小程序实现登录页面的方法:1.创建微信小程序项目;2.在index.wxml文件中添加页面设计代码;3.在index.wxss文件中添加页面样式代码;4.在index.js文件中添加用户交互代码;5.保存编辑的代码并进行调试即可。具体实...
    99+
    2024-04-02
  • 小程序微信登陆实现流程
    1. 微信登录流程 微信登录官方介绍:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.htm...
    99+
    2023-09-05
    小程序 微信 java 微信小程序登录
  • 小程序实现登录功能
    本文实例为大家分享了小程序实现登录功能的具体代码,供大家参考,具体内容如下 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。 1、...
    99+
    2024-04-02
  • 微信小程序实现token登录
    微信小程序实现token登录 微信小程序登录流程 前端先调用wx.login()接口获取code,再把code发个后端 login() { wx.login({ success: (res)...
    99+
    2023-09-07
    微信小程序 小程序 java
  • 微信小程序登录注册页面代码
    以下是一个简单的微信小程序注册登录页面的代码示例: 用户名: 密码: 确认密码: 注册 已有账号? ...
    99+
    2023-09-10
    微信小程序 小程序 微信
  • 微信小程序实现手机验证码登录
    我们的微信小程序里面,手机验证码登录已经成为不可缺少的一部门,为此,我写的这个手机验证码登录,这里我结合thinkphp6+微信小程序实现 首先我们进入小程序页面: wxml页面: ...
    99+
    2024-04-02
  • 小程序商城前端代码流程
     公用响应 首页接口 获取用户token 获取首页数据 获取商品详情页 评论列表 获取商品搜索历史 搜索商品 获取商品分类 获取商品通过分类...
    99+
    2023-06-05
  • 微信小程序如何实现登录
    这篇文章主要为大家展示了“微信小程序如何实现登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现登录”这篇文章吧。微信小程序 实现登录最近一段时...
    99+
    2024-04-02
  • 微信小程序实现登录界面
    微信小程序的登录界面实现,供大家参考,具体内容如下 <view class="container"> <view class="wrapper"> ...
    99+
    2024-04-02
  • Spring Boot实现微信小程序登录
    使用Spring Boot完成微信小程序登录 由于微信最近的版本更新,wx.getUserInfo()的这个接口即将失效,将用wx.getUserProfile()替换,所以近期我也...
    99+
    2024-04-02
  • 微信小程序实现登录页面
    本文实例为大家分享了微信小程序实现登录页面的具体代码,供大家参考,具体内容如下 实现在进入微信小程序首页前的登录验证页面,这里有两种方法,但其实原理都是一样的。 1. 在首页中加入一...
    99+
    2024-04-02
  • 微信小程序实现一键登录
    本文实例为大家分享了微信小程序实现手机号登录的具体代码,供大家参考,具体内容如下 项目需求 点击按钮获取用户电话号码绑定到后台,登录。 实现思路 1、使用微信开放功能为获取用户手机...
    99+
    2024-04-02
  • 小程序授权登录流程详情步骤
    样式展示实例: 这个原理是: 我们开发的软件 ,调用微信app弹框,这个框主要是获取当前微信登录的用户的信息( 允许/取消) 允许就是允许我们开发的软件,获取微信的登录的用户信息 通俗: 获取微信用户的信息去登录 不允许 通俗: ...
    99+
    2023-08-31
    小程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作