码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 大白话理解-微信小程序的授权登录


    学习改文章,您就有清晰的微信小程序授权思路,前后端遵循开发规矩即可
    当然更加完善的实现办法要去看官方文档的推荐
    学习前建议看看授权大白话理解-微信小程序获取授权

    文章目录

      • 大白话讲步骤:
        • 按照最常见的,点击一个按钮进行登录
          • 1. 前端写一个button 按钮点击调用一个方法
          • 2. 前端点击button后,该调用的该方法里面写wx.login( ) 方法,这时候你会获得一些数据
          • 3. 后端怎么进行登录凭证?
          • 4. 前端拿到后端返回的数据了
          • 5. 后端拿到数据后
          • 6. 前端拿到数据后:
      • 以上总结
        • 疑问1:后端该怎么解密?我确实拿到了前端给的encrypted 和 iv,但解密代码怎么写?
        • 疑问2:下载了里面有什么类型的后端代码?


    大白话讲步骤:

    按照最常见的,点击一个按钮进行登录

    1. 前端写一个button 按钮点击调用一个方法
    2. 前端点击button后,该调用的该方法里面写wx.login( ) 方法,这时候你会获得一些数据
    1. 其中code才是我们需要的

    2. 代码展示 在这里插入图片描述

    3. 有了code之后,我们应该用wx.request( )发送一个请求把他传给后端,因为后端才可以通过这个code来进行登录凭证

    3. 后端怎么进行登录凭证?
    1. 后端要通过微信提供的接口,然后把从前端拿到的code,再转发发送到微信服务器获得信息
    2. 微信服务器提供的接口是:https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code
      后端就是通过这个发送get请求给微信服务器的
    3. 上面的appid , secret , js_code 后面的三个参数就是要替换的
      1. appid是应用id,通过登录微信公众号后台去获取的
      2. secret是应用秘钥,也是通过微信公众号后台去获取的
      3. js_code就是我们前段发送wx.request()传过来的code数据
    4. 为什么这么做?因为appid,secret是微信给每一个开发者账号独一无二的"身份证",让你们合法合规的去获取用户的微信账号信息,如果你们敢乱来的话,那就…,微信小程序也是实名了的。嗯…
    5. 这时候后端通过get请求获取到了官方给你们返回的用户信息了(返回的信息里面openid和session_key 等信息),我们就是要取openid和session_key这两个信息(openid是独一无二的)
    6. 拿到这两个数据后后端服务器要保存,然后返回一个token给前端(这个token能和openid和session_key关联就可以,但是非常不推荐直接返回openid 和 session_key)
    4. 前端拿到后端返回的数据了
    1. 拿到token,就存进storage里面了,有这个token且未过期就代表你是合法的了,你可以结合微信授权用户信息–wx.getUserInfo( )来拿他个人具体信息了

    在这里插入图片描述

    1. 微信服务器返回的res就是他本人授权登录的账号信息,但是res里面有很多信息,想要她的具体数据,我们需要哪一些?
      1. encrytedData:(这一段非常长的数据正是用户信息严格加密后的数据)
      2. iv:是加密算法的初始向量
    2. 我们拿到上面的encrytedData,iv,再加上之前向后端要的能和openid、session_key关联上的token,一并wx.request( )发给后端
    5. 后端拿到数据后
    1. 用他传过来的【encrypted 结合 iv】 对 【openid 和session_key】进行解密
    2. 然后解密得到重要的数据,返回给了前端
    6. 前端拿到数据后:
    1. 渲染数据
    2. 或进一步对数据做出处理

    以上总结

    1. 以上整一个过程就是前后端的执行过程,先是wx.login( )登录,得到了code,然后去微信服务器上面换取openid 和 session_ky
    2. 前端得到用户授权,然后就有了用户的独一无二的encrypted 和 iv,这是用户的信息
    3. 把这个encrypted 和 iv 给到后端 ,后端就结合之前用户登录得到的session_key进行解密
    4. 解密后得到他的具体信息,返回前端

    疑问1:后端该怎么解密?我确实拿到了前端给的encrypted 和 iv,但解密代码怎么写?

    1. 在微信文档里面都有了 — 点我跳转去看

    2. 在这里插入图片描述

    3. 官方文档安排的明明白白的

    疑问2:下载了里面有什么类型的后端代码?

    在这里插入图片描述
    1.有以上四种类型的代码,可以直接复制粘贴来跑,按照他的接口就可以
    2. 像Java之类的,百度上面有很成熟好用的解密类,百度就可以下载

  • 相关阅读:
    Hafnium之分区运行时模型
    【Node.js】crypto 模块
    1459. 矩形面积
    打工人逃不开「单人单岗」
    抖音视频批量采集软件|视频评论下载工具
    小程序vant-tabbar使用示例,及报错处理
    linux下多进程开发详解
    PX4模块设计之三十六:MulticopterPositionControl模块
    蓝桥杯每日一题2023.10.6
    吴恩达老师机器学习课程笔记 04 多元线性回归
  • 原文地址:https://blog.csdn.net/qq_33966310/article/details/126796262
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号