网站使用微信小程序扫码登录的实现方法

这篇具有很好参考价值的文章主要介绍了网站使用微信小程序扫码登录的实现方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

传统网站一般都会使用账号密码登录,但这种方式总有用户会忘记密码,找回密码需要一系列验证,也挺麻烦的,于是学习了一下扫码登录,这种方式不仅不会有忘记密码的烦恼,登录还十分快捷。用户体验较好.

一、效果预览

小程序扫码登录怎么实现,微信小程序,小程序,前端网站端点击小程序图片,弹出小程序码

小程序扫码登录怎么实现,微信小程序,小程序,前端小程序端授权页面

二、前提条件

1、需要有一个已上线的小程序。
2、需要扫码登录的网站。

三、实现原理见下图

小程序扫码登录怎么实现,微信小程序,小程序,前端实现原理图

四、实现步骤

1、生成小程序二维码
1.1、这一步需要先生成一个唯一的字符串,字符串长度不能超过32位,生成小程序码时要用到,用来确定是哪个请求发起的,这个唯一字符串贯穿整个生命周期。

1.2、调用微信接口获取二维码 https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=自己获取accessToken

这里需要两个参数,一个是page,就是你扫码后要跳转到的小程序页面,二是scene,就是上面生成的唯一字符串

1.3 上面操作成正确,会获取二维码图片的十进制流,转成Base64直接返回到页面显示出二维码即可。
byte[] bytes = HttpRequest.post(url).body(body).execute().bodyBytes();
<img :src="'data:image/jpeg;base64,'+shareWxQrCode"/>

2、前端页面循环获取状态
前端使用轮训或者后台通过soket等技术通知前端扫码状态,根据上面生成的唯一的字符串来获取。

3、用户打开小程序扫码
用户扫码会跳到上面生成小程序时page指定的页面,在此页面onLoad方法中获取传过来的唯一凭证字符串

onLoad:function(query){
    var that = this;
    const scene = decodeURIComponent(query.scene)
}

4、将状态设置为已扫码,前端轮循时可以装状态显示给用户。在此页面需要获取用户信息,头像昵称等,根据业务需求,也可不用该信息,直接去获取用户openID

wx.login({
      success:(res)=>{
        wx.request({
          url: '你自己的后台地址',
          method:"POST",
          data:{
            code:res.code,
            scene:that.data.scene
          },
          success:(res)=>{
            if(res.statusCode==200){
              var sessionKey = res.data.result.sessionKey;
              var openid = res.data.result.openid;
              var json = {
                'openId': openid,
                 'sessionKey': sessionKey,
                'encryptedData': user.encryptedData,
                'rawData': user.rawData,
                'signature': user.signature,
                'iv': user.iv,
                'avatarUrl':that.data.avatarUrl,
                'nickName':that.data.nickName,
                'scene': that.data.scene
              }
              wx.request({
                url: '你后台根据openId检查用户信息的URL',
                method:"POST",
                data:json,
                success:(res)=>{
                  if(res.data.code==200){
                    wx.showToast({
                      title: '登录成功!',
                      icon: 'success',
                      duration: 3000
                    })
                  }
                }
              })
            }
          },fail: function (res) {
            
          }
        })
      }
    })

后台的逻辑是验证用户,根据用户的openID查询库中是事有该用户,没有可以直接走注册流程,如果有该openId,说明用户已经存在,走登录流程即可。
流程结束记的更改状态,方便前端轮训状态使用。

5、前端可直接根据状态做后续业务,如是已登录状态,就跳到首页等,并提示用户已经扫码登录成功!

以上就是大体的小程序扫码登录流程,如有需要可以相互交流!
以下是使用扫码登录的网站,大家可以体验一下:

麋鹿小站:
扫码登录DEMO https://xylsok.com/#/login文章来源地址https://www.toymoban.com/news/detail-586840.html

到了这里,关于网站使用微信小程序扫码登录的实现方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 个人博客网站实现微信扫码登录(新)

    个人博客网站实现微信扫码登录(新)

            在不久之前(两年前)我写了一篇同名的博客《个人博客网站实现微信扫码登录(附源码)》,当时只是做一个记录而已。但是没想到会收到很多“猿友”的私聊, “代码跑不起来”、“实现原理”、“测试网址访问不了” 等各种问题。我也都一一解答了。趁着这

    2024年02月08日
    浏览(13)
  • 前端实现 微信扫码登录网站 pc端(二维码嵌套页面) 超详细,包会

    本人申明:本案例使用到的appid和AppSecret都是无效的 appid:应用唯一标识,在微信开放平台提交应用审核通过后获得 AppSecret:在微信开放平台提交应用审核通过后获得 1.在根目录html文件引入,既index.html 2.通过js添加节点 注意事项: 如果二维码出来,但是跳转失败,一定要看

    2024年02月04日
    浏览(12)
  • 微信公众号扫码实现网站登录-Django+Vue版本-超详细保姆级教程

    微信公众号扫码实现网站登录-Django+Vue版本-超详细保姆级教程

    实现网页端微信扫码登录有三种方式: PlanA:微信开放平台 — 需认证 — 300元 PlanB:微信公众号 — 需服务号且已认证 — 300元 PlanC:微信小程序 — 需已上线备案的小程序 — 0元 本教程为Django+vue举例的微信公众号扫码登录,从微信扫码登录从注册公众号到最后实现的全部流

    2024年02月03日
    浏览(12)
  • 使用Spring Boot Security 实现多认证 手机号登录 微信扫码登录 微信扫码注册

    使用Spring Boot Security 实现多认证 手机号登录 微信扫码登录 微信扫码注册

    Spring Boot 3.x Spring Security 5.7 Spring Redis MyBatis plus 前端 Vue 公司 最近有个新项目 使用单点登录 sso 百度了一圈 也没怎么找到微信扫码注册的功能于是自己写 需求就是 手机 + 密码登录 微信扫码登录 微信扫码注册 微信二维码 登录 和注册二合一 具体实现 稍后我会说 本教程将指导

    2024年04月10日
    浏览(15)
  • Java 实现微信扫码登录方法(提供前端及后端核心代码)

    Java 实现微信扫码登录方法(提供前端及后端核心代码)

    思路 1、Vue前端页面获取一个公众号的二维码,不是普通二维号,是带有场景值的 2、java后端接收前端的请求,生成一个带时效性的二维码链接返回给前端 3、公众号平台配置服务器接口地址 4、接收到关注或扫码请求并相应处理 5、前端轮询状态,如果检查到验证通过进到下

    2024年02月19日
    浏览(12)
  • vue3 微信扫码登录及获取个人信息实现的三种方法

    一、流程: 微信提供的扫码方式有两种,分别是: 根据文档我们可以知道关于扫码授权的模式整体流程为: 二、前置条件: 微信开发官网 申请: appid: ‘’, // 后端提供 redirect_uri: ‘’, // 后端提供 AppSecret // 后端提供 三、具体登录实现 实现方式一: 使用vue插件: 使用: 结果

    2023年04月13日
    浏览(12)
  • 微信小程序实现自定义扫码功能

    微信小程序提供了调取相机直接扫码的功能,但是扫描界面只是一个全屏的相机,且无法添加其他功能。通过微信小程序的camera组件,即系统相机,可以帮助我们实现自定义扫码功能。(注:扫码二维码功能,需升级微信客户端至6.7.3。) 实现流程 使用camera组件,使用扫码模

    2024年02月06日
    浏览(12)
  • 微信小程序内页跳转登录,登录完成后携带参数重新回到之前页面实现方法

    第一步:在app.js或utils.js中添加以下两个方法: 第二步:在跳转到登录页面跳转前调用setCallbackUrl方法(获当前页面的路径和参数存本地),登录页面登录成功后调用getCallBackUrl方法(提取之前存的路径和参数返回),如果没有就在catch中执行登录后的正常逻辑,比如跳转到默

    2024年02月02日
    浏览(45)
  • 使用python实现微信小程序登录

    微信小程序登录涉及到前端和后端两部分,你可以使用 Python 实现后端的部分。 前端: 在小程序端调用 wx.login() 方法,获取登录凭证 code 将 code 发送到后端 后端(Python): 接收前端传来的 code 向微信服务器发送请求,获取 session_key 和 openid 对 session_key 和 openid 进行处理,完成

    2024年02月13日
    浏览(9)
  • 微信小程序怎么实现扫码一键连WiFi功能

    微信小程序怎么实现扫码一键连WiFi功能

    微信小程序如何实现扫码一键连接WiFi功能 一、引言 在互联网时代,WiFi已经成为了人们生活中不可或缺的一部分。在公共场所或者朋友家,我们经常需要连接WiFi以获得更高速的网络体验。然而,传统的方式需要输入冗长的密码,十分麻烦。因此,如果在微信小程序中实现扫

    2024年02月03日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包