第三方网站/系统使用微信扫码登录

2023-11-09

微信扫码登录网站

微信开放平台

在我们做某个平台或者系统时,都需要有一个登录功能,传统的用户名、密码登录模式看起来似乎并没有手机扫码直接登录来的方便,那么在前端实现上,如何实现微信扫码登录呢?

授权流程

  1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
  2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
  3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。

实现过程

1.我们可以在入口设置一个按钮,增加点击事件,点击后向后端发送请求,并返回一个微信登录的地址
eg:https://open.weixin.qq.com/connect/qrconnect?appid=wx46489bde9c72f3f1&redirect_uri=http://crm.17yingxiao.online/login&response_type=code&scope=snsapi_login&state=17xuexi#wechat_redirect
2.返回地址后,我们可以让页面跳转到该地址上去,我们可以使用
window.location.href = [URL]
在这里插入图片描述
3.用微信扫描该二维码,允许扫描并扫描成功后,微信会拉起应用或重定向到第三方网站,并且带上授权时的code参数
4.调取接口,将code参数值传给后端,并将返回的个人信息进行存储,再跳转至相应页面
以上步骤顺利完成后,我们就完成了微信扫码登录的功能。

代码实现

eg:HTML代码,点击获取微信登录路径
<button class="subBtn" type="primary" @click="getLoginAddress" :loading="btnLoading">
          {{showLogin ? "微信扫码登录" : "登录中..."}}
</button>
eg:获取微信可扫码路径
      async getLoginAddress() {
        // 打开loading
        this.btnLoading = true;
        try {
        // 获取返回路径
          const res = await this.$get('admin/login/address');
         //跳转至该路径
          window.location.href = res;
        } catch (e) {
          this.btnLoading = false;
          this.showLogin = false;
        }
      },
      授权成功之后,微信会自动调取redirect_url,返回我们刚刚登录的那个页面,因为这个相当于从另一个页面到之前的页面,所以vue中的声明周期会重新走一遍,这时我们可以在mounted中定义登录授权之后的方法
eg:授权之后所要执行的操作
    mounted() {
      // 用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数
      // 若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数
      const {code, state} = this.$route.query;
      this.showLogin = !code;
      if (code) {
        this.login(code);
      } else if (!code && state) {
        console.log("拒绝授权")
      }
    },
eg:login方法的具体实现
      async login(code) {
        try {
          const res = await this.$get('admin/login', {code});
          this.saveHeader(res);  //存储用户信息
          this.btnLoading = false;
          this.$router.push('/group/groups') //登录成功,前往首页
        } catch (e) {
          // 关闭loading
          this.btnLoading = false;
        }
      }

以上就是有关我的微信登录实现时的逻辑和简单的做法,欢迎补充和提出修改意见~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第三方网站/系统使用微信扫码登录 的相关文章

随机推荐

  • BUUCTF题目N1BOOK部分wp(持续更新)

    第九章 CTF之MISC章 两个部分的flag 附件 stego png 隐写了一个zip文件 zip文件里面是 2 jpg stego png 2 jpg stego png 用 StegSolve Data Extract BGR LS
  • leaflet 添加 wms

  • pytorch5-各种常用激活函数

    import matplotlib pyplot as plt import torch from torch import nn x torch linspace 6 6 10 sigmoid nn Sigmoid sigmoid激活函数
  • logback--基础--04--配置--appender

    logback 基础 04 配置 appender 代码位置 https gitee com DanShenGuiZu learnDemo tree master logback learn 1 根节点 lt configuration g
  • android Launcher学习总结

    一 Launcher功能介绍 Launcher简称HomeScreen 是android手机加载完毕后第一个启动的应用程序 它负责除应用本身操作外的所有操作 包括有几个桌面 点击应用程序图标启动应用程序 长时间按桌面出现上下文菜单 长按桌面
  • 骑士周游问题

    骑士周游问题 1 马踏棋盘问题 骑士周游问题 实际上是图的深度优先搜索 DFS 的应用 2 如果使用回溯 就是深度优先搜索 来解决 假如马儿踏了53个点 如图 走到了第53个 坐标 1 0 发现已经走到尽头 没办法 那就只能回退了 查看其他
  • python实现按键精灵找色点击功能,使用pywin32和Pillow库

    Python图片处理模块PIL pillow pywin32的主要作用 1 捕获窗口 2 模拟鼠标键盘动作 3 自动获取某路径下文件列表 4 PIL截屏功能 找色点击功能思路 抓取当前屏幕快照 指定一个坐标和颜色 如果坐标的颜色符合 则点击
  • 在Vue2中使用Swiper

    由于兼容性问题 使用的是Swiper4 首先是安装 npm i swiper 4 在组件中引入 import swiper dist js swiper import swiper dist css swiper css import Sw
  • css01

    1 css基础认知 CSS 叫 层叠样式表 用来 给html页面修改样式 可以让页面更美观 css的书写位置 内嵌式
  • C++:替换文本文件中的某些字符

    include
  • linux开机dracut界面_dracut 基本介绍

    dracut 维基 https dracut wiki kernel org index php Main Page http www 360doc com content 13 0428 09 12139495 281449877 sht
  • JVM——垃圾回收器

    JVM 垃圾回收器 按照工作模式分 可以分为并发式垃圾回收器和独占式垃圾回收器 并发式垃圾回收器与应用程序线程交替工作 以尽可能减少应用程序的停顿时间 独占式垃圾回收器 stop the world 一旦运行 就停止应用程序中的所有用 户线
  • Qt 在循环中超时跳出

    常见的一个需求 在一段循环中 给定一个最大运行时间 当循环时间超出时 终止 常用于一些工控场合 对节拍有要求的项目 在此简单的做一个总结记录 主要使用Qt的 QElapsedTimer 类 调用QElapsedTimer中的成员函数elap
  • MySQL技术内幕 InnoDB存储引擎 学习笔记 第八章 备份与恢复

    备份方法 1 热备 在数据库运行中直接备份 对正在运行的数据库没有任何影响 这种方式在MySQL官方手册中称为Online Backup 2 冷备 在数据库停止的情况下备份 这种备份最简单 一般只需拷贝相关的数据库物理文件即可 这种方式在M
  • Vnc配置

    2017 04 15 1 在terminal中输入vncconfig 弹出小窗 勾选对应选项 注意 不要关闭这个小窗 不要关闭这个小窗 不要关闭这个小窗 2 vncconfig nowin 在linux选中文字后 无需其他按键 直接在win
  • 智慧农业物联网系统解决方案

    一 方案背景 随着城市的发展 人们对于生活水准的要求也越来越高 对于食物的品质需求也越来越高 我作为世界农业大国 农业的发展优势慢慢降低 智慧化农业将带来一次新的农业结构改革 农业的根本问题是效率不高 效益不强 效能不够 原因在于各生产要素
  • Python自动操作 GUI 神器——PyAutoGUI

    我们以前讲过怎样使用 Python 在浏览器中实现页面自动化操作 不管用哪种方式实现 都是通过定位页面中的元素来进行相应的操作 今天我们来聊一聊如何在桌面实现自动化操作 与浏览器页面自动化操作类似 桌面自动化操作也是需要定位鼠标在桌面的位置
  • map的常用用法详解

    头文件 include
  • 基于S函数的BP神经网络PID控制器及simulink仿真

    基于S函数的BP神经网络PID控制器及simulink仿真 文章目录 文章来源和摘要 S函数的编写格式和运行步骤 simulink模型结构 S函数模型初始化部分代码理解 S函数模型更新部分 S函数模型输出部分 S函数完整代码附录 文章来源和
  • 第三方网站/系统使用微信扫码登录

    微信扫码登录网站 微信开放平台 在我们做某个平台或者系统时 都需要有一个登录功能 传统的用户名 密码登录模式看起来似乎并没有手机扫码直接登录来的方便 那么在前端实现上 如何实现微信扫码登录呢 授权流程 第三方发起微信授权登录请求 微信用户允