php 微信静默授权登录_php微信 静默 授权登录 获取openid 并保存session-程序员宅基地

技术标签: php  

 当用户通过微信登录你的网页时,记录用户的openid,对于一个公众号来说,每个用户openid都是唯一的。需要获取公众号的appid与appserect。需要注意的是openid放入session可能会有安全性的问题。

//判断是在微信里面打开
        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') == true) {
            if ($_SESSION["openid"]=="") {
                //配置参数的数组
                $CONF =  array(
                    '__APPID__' =>'***',
                    '__SERECT__' =>'***',
                    '__CALL_URL__' =>'http://***.net'.$_SERVER["REQUEST_URI"] //当前页地址
                );
                //没有传递code的情况下,先登录一下
                if(!isset($_GET['code']) || empty($_GET['code'])){
                    $getCodeUrl = "https://open.weixin.qq.com/connect/oauth2/authorize".
                        "?appid=" . $CONF['__APPID__'].
                        "&redirect_uri=" . $CONF['__CALL_URL__'].
                        "&response_type=code".
                        "&scope=snsapi_base". #!!!scope设置为snsapi_base !!!
                        "&connect_redirect=1".
                        "&state=1";
                    //跳转微信获取code值,去登陆
                    header('Location:' . $getCodeUrl);
                    exit;
                }else{
                    $code =	trim($_GET['code']);
                    //使用code,拼凑链接获取用户openid
                    $str = "https://api.weixin.qq.com/sns/oauth2/access_token".
                        "?appid={$CONF['__APPID__']}".
                        "&secret={$CONF['__SERECT__']}".
                        "&code={$code}".
                        "&grant_type=authorization_code";
                    //拿到openid
                    $html = json_decode(file_get_contents($str),1);
                    $_SESSION["openid"]=$html['openid'];
                }
            }
        }else{
            echo "请在微信客户端打开链接";
            exit();
        }

参考:https://blog.csdn.net/weixin_36333654/article/details/52882287?locationNum=5&fps=1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_28153317/article/details/81315192

智能推荐

pycharm + selenium + python 提示 Unresolved reference 'webdriver' 解决办法_unresolved reference 'webdriverwait-程序员宅基地

文章浏览阅读8.4k次,点赞4次,收藏13次。pycharm + selenium + python 提示 Unresolved reference 'webdriver' 解决办法尝试使用python + selenium + pycharm 做自动化测试,命令行pip install selenium 安装了selenium。但是使用pycharm 新建一个测试项目后并新建一个test01.py 文件在文件_unresolved reference 'webdriverwait

华为nova7pro鸿蒙系统怎么安装,nova7、nova7Pro升级鸿蒙系统内测方式-程序员宅基地

文章浏览阅读1.3k次。华为首批升级鸿蒙公测的名单已经出来了,其中nova7、nova7Pro不在公测的名单里,将于第三季度开启,不过目前可以参加花粉俱乐部的内测,很多小伙伴还不知道升级鸿蒙系统的内测方式,那么接下来就跟着小编一起来看看吧。nova7、nova7Pro升级鸿蒙系统内测方式详情注意:这几天因为参与测试的小伙伴太多了,鸿蒙系统的内测通道关闭了,时间是6月3日22:30-6月5日20:00进行全站服务器升级维护..._nova7pro是鸿蒙系统

人生苦短,我用PyCharm!-程序员宅基地

文章浏览阅读141次。点击上方 "程序员小乐"关注公众号,星标或置顶一起成长每天早上8点20分,第一时间与你相约每日英文There are some things that we have..._pycharm 人生苦短

微信小程序详细教程,两小时零基础注册和使用小程序,并利用Ai引擎真正0代码开发小程序!!!(干货,建议收藏)_ai开发微信小程序-程序员宅基地

文章浏览阅读2.2k次,点赞26次,收藏34次。微信小程序详细教程,两小时零基础注册和使用小程序,并利用Ai引擎真正0代码开发小程序!!!(干货,建议收藏),随着科技的飞速发展和互联网的普及,微信作为一款社交媒体平台,已经渗透到我们日常生活的方方面面。微信的用户群体已经覆盖了各个年龄段和各个社会阶层。它不仅仅是一个社交工具,更是一个综合性的生活服务平台,提供了支付、购物、娱乐、学习等多种服务。微信小程序作为微信平台的一个重要组成部分,也随着微信的普及而得到了广泛的关注和应用。小程序的开发和维护已经成为一个热门的技术领域,吸引了大量的开发者和企业的投入。_ai开发微信小程序

css3各种选择器解析-程序员宅基地

文章浏览阅读36次。css3各种选择器解析

TypeScript in React_ts useeffect-程序员宅基地

文章浏览阅读283次。TypeScript in React为什么使用TypeScript?日常开发中弱类型JavaScript的痛点引用的组件/函数不知道可接收的参数以及参数类型-----各种找文档----甚至深入到源码复杂数据的数据流转难以追踪----各种Debugger或者日志排查BFF/后端接口字段以及字段类型不明确----各种找文档----负责人底层依赖的接口类型改动----前端全局搜索替换改动的地方----调试TypeScript为了类型定义而诞生,具有以下优势定义组件的属性以及函数的参数,代_ts useeffect

随便推点

高数考研归纳 - 微分学 - 一元微分学_不可跨保双侧阶相同-程序员宅基地

文章浏览阅读1.2k次,点赞7次,收藏16次。文章目录记忆内容1 导数与微分的定义2 基本公式3 运算法则4 重要结论高阶导数公式题型1 基本概念2 求导数(一) 定义求导(二) 显函数求导(三) 隐函数求导(四) 参数函数确定的函数的求导(五) 分段函数求导3 几何应用4 高阶导数5 相关定理结论证明记忆内容1 导数与微分的定义导数相关定义lim⁡Δx→0f(a+Δx)−f(a)Δx\lim\limits_{\Delta x \to 0}\frac{f(a+\Delta x)-f(a)}{\Delta x}Δx→0lim​Δxf(a+Δx)_不可跨保双侧阶相同

饼状图制作_html div显示饼图-程序员宅基地

文章浏览阅读981次。文献种类:专题技术文献;开发工具与关键技术: VS、C#作者:方建恒 ;年级:20级 ;撰写时间: 2021 年 10 月 18日下面我们来学习一下如何快速的制作一个饼状图,首先我们需要一个插件,运用插件可以让我们快速的完成我们想要的功能在这里我们用到的是一个名为echarts的插件,这个插件是一个基于JavaScript的开源可视化图表库。首先我们要去到echarts的官网里将echarts的脚本文件下载下来,然后进行引入,在HTML部分你要创建一个div用来放置_html div显示饼图

神经网络感受野(receptive field)推到分析与计算(总结)_如何计算感受野(receptive field)-程序员宅基地

文章浏览阅读1.4k次。经典目标检测和最新目标跟踪都用到了RPN(region proposal network),锚框(anchor)是RPN的基础,感受野(receptive field, RF)是anchor的基础。在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。例如1:原始图像为 5 x 5 ,卷积核(Kernel Size)为 3 x 3 ,padding 为 1 ,stride为 2 ,依照此卷积规则,连续做两次卷积。熟悉卷积过程的_如何计算感受野(receptive field)

css样式中 border的应用_css中border的实例用法-程序员宅基地

文章浏览阅读517次。在以往的工作中,border多数情况下是用来给盒模型加描边。而如今,可以用border制作各种小形状。1、三角形html代码: css代码:.box{width: 400px; height: 300px; background: #F3961C; position: relative; margin: 50px auto;}.in-box{position: absol_css中border的实例用法

杭电 ACM 1.2.5_杭电acm step1.2.5-程序员宅基地

文章浏览阅读521次。ASCIITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1976 Accepted Submission(s): 863 Problem DescriptionSince all we_杭电acm step1.2.5

2016.8.18纪中比赛总结-程序员宅基地

文章浏览阅读434次。估分:100+20+10+40=170实际:100+10+0+20=130过程:一开始看了一遍所有的题目,觉得这次的题目比较变态,必须认真对待。通过多“年”的dp经验,我在纸上算了算便马上开始拍代码,调试了一阵子后迅速水过,状态转移方程:if f[i+j]不用初始化。第一题搞定了,发现第四题潜藏水分,于是拍了个弗洛伊德双向图,瞬间感到呵呵,瞄了一眼数据,发现可以过30~

推荐文章

热门文章

相关标签