后台项目 扫码登录

思路 :通过后端接口拿到你需要的二维码地址 websocket链接的服务器地址 和 订阅地址 并进行长链接,通过扫描二维码会进入一个是否确定登录的页面注:这个页面是由前端完成 后端通过扫码重定向至该页面 并带有用户的openId 和key 通过点击确定这个时候呢 后端会给你一个确定登录的接口 如果你确定了长连接会返回给你一个token 通过toke实现用户的登录

前端自己完成 后端重定向 带有openid和key的页面 具体看自己后端的返回
在这里插入图片描述

具体实现

第一步 通过后端接口 获得 下列参数 实现二维码的展示

在这里插入图片描述

这里的url 为二维码链接

vue 生成二维码
安装

npm install vue-qriously --save-dev

引入 main.js 入口文件

import Vue from 'vue'
import VueQriously from 'vue-qriously'
Vue.use(VueQriously)

使用

template>
    <qriously :value="initQCode" :size="138"/>    
</template>

<script>
    export default {
   
   
        name: 'app',
        data() {
   
   
            return {
   
   
                initQCode: '你自定定义的值'
            }
        }
    }
</script>
<style lang="less">
    /*样式*/
</style>

在这里插入图片描述

第二步 使用SockJS实现websocket

下载

npm install sockjs-client stompjs -S

引入

import SockJS from 'sockjs-client'
import Stomp from 'stompjs'

建立连接订阅消息

<script>
import api from "@/api";
import {
   
    cloneLoop } from "@/utils";
import SockJS from "sockjs-client";
import Stomp from "stompjs";
import axios from "axios";
import {
   
    Base64 } from "js-base64";
export default {
   
   
  data() {
   
   
    return {
   
   
      img
### 实现Vue3后台管理系统中的微信登录 为了在Vue3项目中集成微信登录功能,需遵循特定的步骤来配置前端和后端环境。企业微信提供了OAuth的登录授权方式,允许网站通过浏览器内的二维码描完成用户的认证过程[^2]。 #### 配置前端部分 首先,在项目的`index.html`文件中引入必要的JavaScript库: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script src="http://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.4.js"></script> ``` 接着,在Vue组件内部初始化并调用微信提供的API接口来进行操作。下面是一个简单的示例代片段展示如何设置按钮以及处理回调事件: ```javascript import { ref, onMounted } from 'vue'; export default { setup() { const qrCodeUrl = ref(''); function initWeChatLogin() { wx.config({ appId: 'YOUR_APP_ID', // 应用唯一标识符 timestamp: '', // 时间戳 nonceStr: '', // 随机字符串 signature: '' // 签名 }); wwLogin({ id: "loginContainer", // DOM节点ID appid: "wxXXXXX", // 开发者账号下的应用APPID agentid: "", // 可选参数,指定应用代理ID redirect_uri: encodeURIComponent("REDIRECT_URI"), // 授权成功后的重定向地址 state: Math.random().toString(36).substr(2), // 自定义状态 href: "" // 如果为空则默认当前页面URL }); document.getElementById('loginContainer').addEventListener('success', (event) => { console.log(event.detail.code); // 获取code用于换取access_token }, false); } onMounted(() => { initWeChatLogin(); }) return { qrCodeUrl, }; } } ``` 请注意替换上述模板中的占位符(如`YOUR_APP_ID`, `REDIRECT_URI`),这些值应该来自开发者注册的企业微信应用程序的相关信息。 #### 后端逻辑设计 对于后端而言,主要职责在于接收由前端传递过来的临时凭证(`code`)并通过HTTP请求向微信服务器交换正式的访问令牌(access token),进而获得用户的具体资料。这部分通常涉及到OAuth2协议标准流程的一部分[^4]。 一旦获得了有效的token之后,则可以根据业务需求决定是否创建本地账户关联或是直接返回给客户端作为后续交互的身份证明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值