Hedre_ 2024-01-05 18:09 采纳率: 33.3%
浏览 13

关于vue pc扫码登录功能实现

目前前端代码中引入js后

<div id="login_container"></div>
watch: {
    $route: {
      handler: function (route) {
        this.redirect = route.query && route.query.redirect;
        
        this.wxCode = route.code || "";
        console.log(this.wxCode, '===', route.query);
        //本地存储code是因为从其他页面返回vue页面存在缓存需要自定义刷新
        if (this.wxCode == localStorage["wxCode"] && this.wxCode != "") {
          window.location.href = this.redirect_uri; //回调地址
        } else {
          localStorage.setItem("wxCode", this.wxCode); //设置b为"isaac"
        }
        if (this.wxCode) {
          let params = {
            code: this.wxCode,
            state: "",
          };
          wechatLogin(params)
            .then((res) => {
              if (res.status) {
                //返回参数如果绑定微信返回token正常存储登录未绑定账号返回unionid绑定当然也可以以微信信息为主题自动生成账号
              }
            })
            .catch(() => {
              //返回失败因为二维码已经被使用过所以需要刷新重新获取
              window.location.href = this.redirect_uri;
            });
        }
      },
      immediate: true,
    },
  }

//初始化微信相关参数
 loginQR().then((result) => {
        this.redirect_uri = result.data.redirect_uri;
        var obj = new WxLogin({
          self_redirect: true,
          id: "login_container", // 需要显示的容器id
          appid: result.data.appid, // 公众号appid wx*******
          scope: result.data.scope, // 网页默认即可
          redirect_uri: result.data.redirect_uri, // 授权成功后回调的url
          state: result.data.state, // 可设置为简单的随机数加session用来校验
          style: "black", // 提供"black"、"white"可选。二维码的样式
          href: "data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDIwMHB4O30KLmltcG93ZXJCb3ggLnRpdGxlIHtkaXNwbGF5OiBub25lO30KLmltcG93ZXJCb3ggLmluZm8ge3dpZHRoOiAyMDBweDt9Ci5zdGF0dXNfaWNvbiB7ZGlzcGxheTogbm9uZX0KLmltcG93ZXJCb3ggLnN0YXR1cyB7dGV4dC1hbGlnbjogY2VudGVyO30NCiN3ZWNoYXRfY29kZT5pZnJhbWV7aGVpZ2h0OiAyODBweDt9",
        });
      });

后端进行提供二维码和进行回调的操作
然后本地跟线上扫码成功后都不走监听 只在页面二维码部位展示后端回调的地址
请问扫码成功后的流程是什么!

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-05 20:25
    关注

    【以下回答由 GPT 生成】

    对于 Vue PC 端实现扫码登录功能遇到的问题,流程一般如下:

    1. 前端:
    2. 引入相应的 JavaScript 库,例如 qrcode.jsvue-qrcode-reader
    3. 在页面中插入一个元素,用于展示二维码。
    4. 调用后端接口获取二维码的数据,例如一个包含二维码内容的 URL。
    5. 使用 JavaScript 将二维码数据生成成图片,并显示在页面的二维码元素中。
    6. 使用路由的监听功能来监听 URL 中的参数变化,以判断扫码是否成功。

    7. 后端:

    8. 提供一个生成二维码的接口,包括一些参数,例如生成的二维码内容、大小等。
    9. 提供一个回调的接口,用于前端扫码成功后的回调操作。该接口一般为一个 HTTP POST 请求,参数为扫码成功后的相关信息。

    请您提供一下相关的前端代码和后端接口情况,以便更好地理解问题所在,并给出更具体的解决方案。如果目前没有写好的代码或者无法提供后端接口情况,也可以尽可能描述清楚具体的流程和细节,我会尽力提供帮助。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月5日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真