首页 > 其他分享 >pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

时间:2023-05-20 17:55:52浏览次数:32  
标签:扫码 登录 url 微信 json login pbootcms

  1. 首先需要在微信公众平台或开放平台中创建应用,并获取到AppID和AppSecret。

  2. 在pbootcms中创建一个自定义模板页面(例如:wechat_login.html),并在该页面中添加以下代码,用于生成微信扫码登录的二维码:

<!-- 引入jquery库 -->
<script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script>

<!-- 生成二维码的canvas -->
<div id="qrcode"></div>

<!-- 用于轮询检查扫码状态 -->
<div id="check_login"></div>

<script>
$(function(){
    // 生成二维码
    var url = "https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect";
    url = url.replace("APPID", "你的AppID");
    url = url.replace("REDIRECT_URI", encodeURIComponent("http://你的域名/wechat_callback.php"));
    $('#qrcode').qrcode({width: 200,height: 200,text: url});

    // 轮询检查扫码状态
    setInterval(function(){
        $.ajax({
            url: "http://你的域名/check_login.php",
            dataType: "json",
            success: function(data){
                if(data.code == 0){
                    alert("登录成功!");
                    window.location.reload();
                }
            }
        });
    }, 3000);
});
</script>
  1. 创建一个名为wechat_callback.php的文件,用于接收微信的回调请求并获取用户的access_token和openid。代码如下:
<?php

// 获取微信授权码
$code = $_GET['code'];

// 获取access_token和openid
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSECRET&code=".urlencode($code)."&grant_type=authorization_code";
$url = str_replace("APPID", "你的AppID", $url);
$url = str_replace("APPSECRET", "你的AppSecret", $url);
$json = file_get_contents($url);
$data = json_decode($json, true);
$access_token = $data['access_token'];
$openid = $data['openid'];

// 将access_token和openid存储在session中
session_start();
$_SESSION['access_token'] = $access_token;
$_SESSION['openid'] = $openid;

// 跳转回原页面
header('Location: http://你的域名/wechat_login.html');
  1. 创建一个名为check_login.php的文件,用于检查用户是否已经扫码并确认登录。代码如下:
<?php

// 获取session中的access_token和openid
session_start();
$access_token = $_SESSION['access_token'];
$openid = $_SESSION['openid'];

// 检查access_token和openid是否存在
if(empty($access_token) || empty($openid)){
    echo json_encode(array('code' => -1, 'msg' => '未登录'));
    exit();
}

// 检查用户是否已经扫码并确认登录
$url = "https://api.weixin.qq.com/sns/auth?access_token=".urlencode($access_token)."&openid=".urlencode($openid);
$json = file_get_contents($url);
$data = json_decode($json, true);
if($data['errcode'] == 0){
    echo json_encode(array('code' => 0, 'msg' => '已登录'));
    exit();
} else {
    echo json_encode(array('code' => 1, 'msg' => '未确认登录'));
    exit();
}

完成以上步骤后,用户在访问wechat_login.html页面时,将会看到一个二维码,用户可以使用微信扫描二维码进行登录。同时,check_login.php文件会定时检查用户的登录状态,并在用户确认登录后,将access_token和openid存储在session中,以便于后续的操作。

标签:扫码,登录,url,微信,json,login,pbootcms
From: https://www.cnblogs.com/ddroom/p/17417558.html

相关文章

  • 阿里云+微信小程序部署记录
    这两天公司买了阿里云服务器和数据库,然后又说重新部署一套小程序,磕磕绊绊总算成了。记录一下遇到的问题吧。防止下次遇到这些事情,不会就麻烦了。T_T首先是购买了服务器和数据库,emmm不算大,都是2核4G的。害,也没啥业务量,权且先用着吧。注意点:买的过程呢,遇到过那种秒杀款,还好还好,我......
  • 电脑微信占用100多GB空间 解决办法来了:重回清爽流畅
    这几天微信吃内存的话题又上热搜了,作为一款10亿+用户的国民级APP,微信的真是让人又爱又恨,不用几乎不可能,用起来槽点又多,光是磁盘占用就是个头疼的问题。不论是工作还是日常沟通,微信里面的文件及语音、视频都会很多,时间长了就会占用大量空间,手机上占用100多GB很常见,电脑版微信同样......
  • 微信的评价
    微信具有零资费、跨平台沟通、显示实时输入状态等功能,与传统的短信沟通方式相比,更灵活、智能,且节省资费。①微信界面支持发送语音短信、视频、图片,表情和文字②支持多人群聊③支持查看所在位置附近使用微信的人④支持腾讯微博、QQ邮箱、漂流瓶、语音记事本、QQ同步助手等插......
  • 微信软件的评价
    1、用户界面:采用白底黑字,选项框排在界面底部,简洁大方,一目了然。2、记住用户选择:从中观视角去分析产品的服务人群,功能流程,信息结构,并由此得出用户画像、用户体验地图、痛点痒点爽点等用户体验相关的结论。最后是从微观视角,从用户内心的底层情绪出发,去探究产品对于用户内心情绪......
  • closeSocket:fail task not found, uniapp 微信小程序连接不上mqtt!!!
    原来使用的mqttjs版本为4.3.7,连接一直报错,closeSocket:failtasknotfound。降低mqtt.js版本使用4.1.0。引入mqtt的方式使用importmqttfrom'mqtt/dist/mqtt.js'!!!使用constmqtt=require('mqtt'),require方式也提示无法连接!!!......
  • 3 分钟利用 FastGPT 和 Laf 将 ChatGPT 接入企业微信
    原文链接:https://forum.laf.run/d/556FastGPT是一个超级......
  • 微信小程序setData()对数组的操作
    对于setData普通数据类型而言,没什么讲究但是对于数组而言,再直接修改一个完整的数组显得有些多余,首先写着不简易,其次效率很是滴。比如你都能觉得复杂,官方肯定是有对应的优化的。官方demoPage({data:{array:[{text:'initdata'}],},changeItemInArray:fun......
  • 从零玩转第三方登录之WeChat公众号扫码关注登陆 -wechatgzh
    title:从零玩转第三方登录之WeChat公众号扫码关注登陆date:2022-09-2722:46:53.362updated:2023-03-3013:28:41.359url:https://www.yby6.com/archives/wechatgzhcategories:-从零玩转系列tags:-第三方登录-从零玩转系列前言由于看见了面试鸭的登陆方式,我......
  • 微信扫码登录(new WxLogin)二维码样式修改
    一、自定义二维码样式例如:.impowerBox.qrcode{width:180px;}.impowerBox.title{display:none;}.impowerBox.info{width:180px;}.status_icon{display:none}.impowerBox.status{text-align:center;}二、自定义二维码样式进行base64加密(在线加密解密网站)......
  • CleanMyWechat是一个用于自动删除PC端微信缓存数据的工具
    CleanMyWechat是一个用于自动删除PC端微信缓存数据的工具。它可以删除微信自动下载的大量文件、视频和图片等数据,从而释放存储空间。工具支持识别微信账号,允许用户选择自定义路径,并且可以管理多个账号。删除后的文件会被放置在回收站中,以防止意外删除。该工具支持Windows系统中的......