uniapp实现公众号微信登录

前端代码

data() {return {openid: "",server: '',code:''};
},
mounted() {this.getCode()
},
methods:{getCode() {// 非静默授权,第一次有弹框this.code = '';var callback_url = '回调地址'; // 获取页面urlvar appid = 'APPID';this.code = this.getUrlCode().code; // 截取codeif (this.code == null || this.code === '') {// 如果没有code,则去请求window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(callback_url)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;} else {// 当code不等于空时,调用后端接口获取用户信息this.getUserInfo();// 你自己的业务逻辑}},getUserInfo() {let token = uni.getStorageSync("token");const header = {"Content-Type": "application/json","Authorization": token};let data = {}data.code = this.codedata.appid= '你的appid'data.secret= '你的secret'uni.request({url: 'https://api.ecom20200909.com/Api/getOpenid',data: data,header: header,timeout: 20000,method: 'POST',dataType: 'json',success: (res) => {this.setOpenid(res.data.openid);uni.setStorageSync('openid', res.data.openid)}})},getUrlCode() {// 截取url中的code方法var url = location.search;var theRequest = new Object();if (url.indexOf('?') != -1) {var str = url.substr(1);var strs = str.split('&');for (var i = 0; i < strs.length; i++) {theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];}}return theRequest;},
}

后端php代码

public function getOpenid(){$code = input('post.code');$param["appid"]=input('post.appid');$param["secret"]=input('post.secret');$param["code"]=$code;$param["grant_type"]="authorization_code";$json = $this->curlPost("https://api.weixin.qq.com/sns/oauth2/access_token",$param);$rv=json_decode($json,true);return json($rv);
}public function curlPost($url = '', $postData = '', $options = array()) {if (is_array($postData)) {$postData = http_build_query($postData);}$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数if (!empty($options)) {curl_setopt_array($ch, $options);}//https请求 不验证证书和hostcurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$data = curl_exec($ch);curl_close($ch);return $data;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通信原理板块——卷积码(原理、代数和几何表示、编码和解码)

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、卷积码定义 卷积码(convolution…

uboot - 驱动开发 - 驱动模型

说明 类似于linux&#xff0c;为了规范、统一驱动适配和驱动接口调用&#xff0c;uboot定义了一套驱动模型(Driver Model)&#xff0c;简称DM。本文基于&#xff1a;u-boot-2021.10。 优点 为同一类ip的驱动定义了统一的操作接口&#xff0c;DM在软件层面做了一定的抽象。分…

SM2协同签名算法

在介绍SM2协同签名之前&#xff0c;先介绍下门限签名机制&#xff0c;提到门限签名就不得不提区块链&#xff0c;在与区块链的结合应用中&#xff0c;门限签名的优势在于签名的生成是通过链下的 MPC 协议产生的&#xff0c;其结果是更加安全&#xff0c;避免了合约被黑客攻击的…

网络工程综合试题(二)

1. SR技术有哪些缺点&#xff1f; SR&#xff08;Segment Routing&#xff09;技术是一种新兴的网络编程技术&#xff0c;它具有很多优点&#xff0c;但也存在一些缺点&#xff0c;包括&#xff1a; 部署复杂性&#xff1a;SR技术需要对网络进行改造和升级&#xff0c;包括更新…

基于SpringBoot的企业财务管理系统

目录 前言 一、技术栈 二、系统功能介绍 管理员功能实现 财务人员管理 留言管理 薪资管理 财务人员功能实现 报销信息管理 收费信息管理 支出信息管理 员工功能实现 报销信息管理 留言管理 薪资查询 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前…

研究生安排

研一 看论文不懂先记着 论文一定多看的&#xff0c;建议300篇论文&#xff0c;500最好。 选题的时候要心里有谱&#xff0c;先找小论文&#xff0c;再找大论文 研二 确定研究方向和目标 和老师切磋研究的是什么 明确要做的东西是什么&#xff0c;是否已经明确要做什么&#xff…

kubernetes组件

基本队对象 pod 最小单位 service 跟网络相关 Volume Namespace 准备工作&#xff1a; master (1) node1 node2 初始化 做本地解析 10.0.0.51 10.0.0.56 10.0.0.186 关闭swap分区&#xff1a;sed -i s/.*swap.*

Centos安装mongodb

mongodb官网 下载MongoDB cd /optwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.2.tgztar -xf mongodb-linux-x86_64-rhel70-4.4.2.tgz -C /usr/local/cd /usr/local/mv mongodb-linux-x86_64-rhel70-4.4.2 mongodb部署Mongodb 2.1. 创建目录 cd mo…

k8s资源调度

默认的情况下&#xff0c;一个pod在哪个node节点上运行&#xff0c;是由scheduler组件采取对应的算法计算出来的&#xff0c;这个过程是不受人工控制的&#xff0c;在实际的使用过程中&#xff0c;这不能够满足客观的场景&#xff0c;针对这样的情况&#xff0c;k8s 提供了四大…

基于【逻辑回归】的评分卡模型金融借贷风控项目实战

背景知识&#xff1a; 在银行借贷过程中&#xff0c;评分卡是一种以分数形式来衡量一个客户的信用风险大小的手段。今天我们来复现一个评分A卡的模型。完整的模型开发所需流程包括&#xff1a;获取数据&#xff0c;数据清洗和特征工程&#xff0c;模型开发&#xff0c…

计算机基础知识41

前端 # 前端是所有跟用户直接打交道 比如&#xff1a;PC页面、手机页面、汽车显示屏&#xff0c;肉眼可以看见的 # 后端&#xff1a;一堆代码&#xff0c;用户不能够直接看到&#xff0c;不直接与用户打交道 常见的后端&#xff1a;Python、Java、Go等 # 学了前端就可以做全栈…

C语言每日一练(二)

单链表经典算法专题 一、 单链表相关经典算法OJ题1&#xff1a;移除链表元素 解法一&#xff1a;在原链表中删除Node.nextnext的节点 typedef struct ListNode ListNode; struct ListNode* removeElements( ListNode* head, int val) {ListNode* pcur head;ListNode* pre h…

【T】分治与倍增

分治&#xff0c;分而治之&#xff0c;其中最经典的便是二分 一、二分 一种经典而且非常好用的思想 将原问题对半转换成两个问题&#xff0c;子问题又继续转换成两个问题&#xff0c;许多子问题会很显然对答案没有关系&#xff0c;所以能讲原本O(n)的东西转化为O(logn) 但一般…

(13)PC端自动化测试-C#微信接收消息并自动回复

本篇文章实现了微信自动接收最新的实时聊天信息&#xff0c;并对当前实时的聊天信息做出对应的回复。 可以自行接入人工智能或者结合自己的业务来做出自动回复。 下面视频是软件实际效果 自动接收消息并回复 实现的逻辑是实时监控微信的聊天面板中UI对象来判断是否有最新的消…

世界前沿技术发展报告2023《世界航空技术发展报告》(五)直升机技术

&#xff08;五&#xff09;直升机技术 1.常规直升机技术1.1 北约六国联合启动下一代旋翼飞行器能力项目1.2 美国和法国重视发展有人/无人直升机编组能力1.3 美国“黑鹰”直升机完成不载人全自主飞行 2.新概念直升机技术2.1 美国“劫掠者”X型直升机参与陆军“未来攻击侦察机”…

Go学习第十五章——Gin参数绑定bind与验证器

Go web框架——Gin&#xff08;参数绑定bind与验证器&#xff09; 1 bind参数绑定1.1 JSON参数1.2 Query参数1.3 Uri绑定动态参数1.4 ShouldBind自动绑定 2 验证器2.1 常用验证器2.2 gin内置验证器2.3 自定义验证的错误信息2.4 自定义验证器 1 bind参数绑定 在Gin框架中&#…

Vue 路由指南:畅游单页应用的地图(Vue Router 和 <router-view>)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【时间复杂度和空间复杂度】

前言&#xff1a; 首先介绍一下算法(Algorithm) 算法是对特定问题求解步骤的一种描述。一个“好”的算法应该达到以下目标&#xff1a;正确性、可读性、健壮性、高效率与低存储量需求 算法的效率的度量 是通过 时间复杂度 和 空间复杂度 来描述的 一、时间复杂度 时间复杂度…

【数据结构】Map和Set

Map和Set 1. 搜索树 1.1 概念 二叉搜索树是左子树比根节点小&#xff0c;右子树比根节点大的二叉树。&#xff08;如果左右子树不为空的话是这样&#xff0c;但是左右子树也可以为空&#xff09; 1.2 操作——查找 查找的思想与二分查找类似。 如果根节点的值和所要查找的…

JavaScript对象数组根据某个属性值筛选分类

&#x1f935; 作者&#xff1a;coderYYY &#x1f9d1; 个人简介&#xff1a;前端程序媛&#xff0c;目前主攻web前端&#xff0c;后端辅助&#xff0c;其他技术知识也会偶尔分享&#x1f340;欢迎和我一起交流&#xff01;&#x1f680;&#xff08;评论和私信一般会回&#…