PHP微信公众号授权登录
PHP微信公众号授权登录
微信公众号授权登录非常简单只需要几步就可以搞定
第一步:拼接参数获取code值,并指定后面的处理链接
/*** 获取公众号code*/public function getCode(){$appid = config('app.wechat.AppId');$redirect_uri = urlencode('http://www.xxx.com/api/register/weChatRegister');//重定向地址$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6f8e4dba34f9d941&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";header("Location:" . $url);}
第二步:通过code获取用户openid和access_token,然后再根据openid和access_token获取用户信息
public function weChatRegister(){if (isset($_GET['code'])) {// 获取openid和access_token$app_id = config('app.wechat.AppId');$app_secret = config('app.wechat.AppSecret');$code = $_GET['code'];// 发送请求,获取用户openid和access_token$data = $this->curl('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $app_id . '&secret=' . $app_secret . '&code=' . $code . '&grant_type=authorization_code');$data = json_decode($data);// 防止第二次访问动态链接报错// 判断是否获取到当前用户的openidif (isset($data->openid)) {$open_id = $data->openid;$access_token = $data->access_token;// 获取当前用户信息$user_info = $this->curl('https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token . '&openid=' . $open_id . '&lang=zh_CN');$user_info = json_decode($user_info);// 取出用户信息/**user_openid :用户openId*user_nickname :用户昵称*user_sex :性别*user_province :省*user_city :城市*user_headimgurl :用户头像url*user_unionid :绑定开放平台后才有这个字段*/$user_openid = $user_info->openid;$user_nickname = $user_info->nickname;$user_headimgurl = $user_info->headimgurl;$user_unionid = $user_info->unionid;// 判断用户是否存在$userInfo = Users::where(['unionid' => $user_unionid])->find();if (empty($userInfo)) {//用户不存在,创建用户$insert['nickname'] = $user_nickname;$insert['avatar'] = $user_headimgurl;$insert['openid'] = $user_openid;$insert['unionid'] = $user_unionid;$insert['create_time'] = time();$userId = Db::name('qt_users')->insertGetId($insert);}else {//用户已经存在进行登录操作或者进行用户下一步数据绑定和认证等}}else{$this->result('无效的请求',$data,204);}}else{$this->result('无效的请求','',204);}}
curl请求方法
// php CURL请求public function curl($url, $post = false){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);if ($post) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post);}$result = curl_exec($ch);curl_close($ch);return $result;}
PHP微信公众号授权登录相关推荐
- 微信公众号授权登录(asp.net + angular)
微信是时下最火的,上面有数以亿计的用户,如果能接入微信将大大减低注册门槛,当然,接入微信登录是有门槛的.微信登录一般有两个,一个是微信开放平台授权登录,一个是微信公众号授权登录,两者都需要认证才可以继 ...
- vue移动端项目微信公众号授权登录
前言 在我们做移动端项目时, 很多功能是以登录后才能进行后续的操作, 并且许多pc端的网页都有微信扫码登录功能, 为了做到pc与移动端统一, 往往移动端项目需要添加微信登录功能, 那么为什么手机端不能 ...
- Java在Web端微信公众号授权登录
Java在Web端微信公众号授权登录 1.需要在微信开发平台配置 url:是自己服务中的微信需要推给你的地址(需要使用二级域名,可以去添加链接描述)购买9块钱1个月使用权或者白嫖都可 token 这个 ...
- H5 微信公众号 授权登录 前后端分离篇(资料准备+前端01)
实现微信公众号授权登录,很简单,但是注意的地方要细心,小伙伴们跟着我的思路一起实现吧! 文章目录 一.帐号申请 1. 正式账号 2. 测试帐号 二.微信文档 2.1. 文档主页 2.2. 授权流程 2 ...
- 【SpringBoot学习】46、SpringBoot 集成 Uniapp 实现微信公众号授权登录
文章目录 一.公众号环境搭建 二.Spring Boot 集成微信公众号 1.application.yml 微信配置 2.控制层接口 三.Uniapp 实现授权登录 一.公众号环境搭建 本篇文章使用 ...
- uni-app 对FastAdmin微信公众号授权登录实例
uni-app 对FastAdmin微信公众号授权登录实例 uniapp 微信公众号授权登录代码 跳转获取code 提交fastadmin 第三方登录插件 进行登录验证 存储token onLoad( ...
- RuoYi-App移动版(uni-app)微信公众号授权登录
前言 略 uni-app 未提供微信公众号授权登录 uni.login是一个客户端API,统一封装了各个平台的各种常见的登录方式,包括App手机号一键登陆.三方登录(微信.微博.QQ.Apple.go ...
- Spring boot 项目(十三)——实现微信公众号授权登录获取用户信息
引言 微信公众号开发中,必不可少的一环:公众号授权登录.获取微信用户信息 前期准备 内网渗透=>生成本地指定端口映射的外网域名 链接:内网渗透工具natapp使用详解 域名生成之后修改yml文件 ...
- 基于Spring Boo微信公众号授权登录获取用户信息(附带完整源码)
简介 微信公众号开发中,必不少可少的一环:公众号授权登录.获取微信用户信息. 本地完整运行环境准备 内网渗透=>生成本地指定端口映射的外网域名 传送门:内网渗透工具Natapp使用详解 域名生成 ...
- uniapp微信公众号授权登录,本地调试
在项目如何集中微信公众号授权登录 后端跳转获取code码,最后拼接, //保留登录前的页面参数.为了不让参数传到后台,并且在微信授权链接带来带去,可以将参数和登录前的地址存到本地缓存let route ...
最新文章
- Flex 颜色对照表_16进制
- vc6.0 简易的tcp网络讲解(二)
- 线程的状态:分离(detached)和joinable(可结合的)
- sqlserver2000 中文排序问题
- Java高阶部分知识点汇总(四)-继承与多态
- 乱谈卡巴CCTV黄金时段广告
- 初识Web Component
- java 如何秒速写一个线程启动
- python encodings模块_python-ImportError:没有名为“ encodings”的模块
- mysql 查询表注释
- HDU 2674 N!Again
- 北京交通大学离散数学 谓词逻辑_【精选】离散数学习题解答-第3章谓词逻辑.pdf...
- 使用matlab生成含正弦波表数据ROM
- python统计一个字符串中连在一起数字的个数.(如12asd25asfd,输出结果为2)
- 【InSAR 笔记2】哨兵一号精轨数据批量下载【修改0704】
- ug中许可证服务器,ug教程:ug服务器许可证(LMTOOLS)设置教程
- element-ui的走马灯详解
- Metasploit用法大全
- python图像锐化,图像加强、锐化,利用 Python-OpenCV 来实现 4 种方法!
- android绘制心形,Android中的心形按钮