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微信公众号授权登录相关推荐

  1. 微信公众号授权登录(asp.net + angular)

    微信是时下最火的,上面有数以亿计的用户,如果能接入微信将大大减低注册门槛,当然,接入微信登录是有门槛的.微信登录一般有两个,一个是微信开放平台授权登录,一个是微信公众号授权登录,两者都需要认证才可以继 ...

  2. vue移动端项目微信公众号授权登录

    前言 在我们做移动端项目时, 很多功能是以登录后才能进行后续的操作, 并且许多pc端的网页都有微信扫码登录功能, 为了做到pc与移动端统一, 往往移动端项目需要添加微信登录功能, 那么为什么手机端不能 ...

  3. Java在Web端微信公众号授权登录

    Java在Web端微信公众号授权登录 1.需要在微信开发平台配置 url:是自己服务中的微信需要推给你的地址(需要使用二级域名,可以去添加链接描述)购买9块钱1个月使用权或者白嫖都可 token 这个 ...

  4. H5 微信公众号 授权登录 前后端分离篇(资料准备+前端01)

    实现微信公众号授权登录,很简单,但是注意的地方要细心,小伙伴们跟着我的思路一起实现吧! 文章目录 一.帐号申请 1. 正式账号 2. 测试帐号 二.微信文档 2.1. 文档主页 2.2. 授权流程 2 ...

  5. 【SpringBoot学习】46、SpringBoot 集成 Uniapp 实现微信公众号授权登录

    文章目录 一.公众号环境搭建 二.Spring Boot 集成微信公众号 1.application.yml 微信配置 2.控制层接口 三.Uniapp 实现授权登录 一.公众号环境搭建 本篇文章使用 ...

  6. uni-app 对FastAdmin微信公众号授权登录实例

    uni-app 对FastAdmin微信公众号授权登录实例 uniapp 微信公众号授权登录代码 跳转获取code 提交fastadmin 第三方登录插件 进行登录验证 存储token onLoad( ...

  7. RuoYi-App移动版(uni-app)微信公众号授权登录

    前言 略 uni-app 未提供微信公众号授权登录 uni.login是一个客户端API,统一封装了各个平台的各种常见的登录方式,包括App手机号一键登陆.三方登录(微信.微博.QQ.Apple.go ...

  8. Spring boot 项目(十三)——实现微信公众号授权登录获取用户信息

    引言 微信公众号开发中,必不可少的一环:公众号授权登录.获取微信用户信息 前期准备 内网渗透=>生成本地指定端口映射的外网域名 链接:内网渗透工具natapp使用详解 域名生成之后修改yml文件 ...

  9. 基于Spring Boo微信公众号授权登录获取用户信息(附带完整源码)

    简介 微信公众号开发中,必不少可少的一环:公众号授权登录.获取微信用户信息. 本地完整运行环境准备 内网渗透=>生成本地指定端口映射的外网域名 传送门:内网渗透工具Natapp使用详解 域名生成 ...

  10. uniapp微信公众号授权登录,本地调试

    在项目如何集中微信公众号授权登录 后端跳转获取code码,最后拼接, //保留登录前的页面参数.为了不让参数传到后台,并且在微信授权链接带来带去,可以将参数和登录前的地址存到本地缓存let route ...

最新文章

  1. Flex 颜色对照表_16进制
  2. vc6.0 简易的tcp网络讲解(二)
  3. 线程的状态:分离(detached)和joinable(可结合的)
  4. sqlserver2000 中文排序问题
  5. Java高阶部分知识点汇总(四)-继承与多态
  6. 乱谈卡巴CCTV黄金时段广告
  7. 初识Web Component
  8. java 如何秒速写一个线程启动
  9. python encodings模块_python-ImportError:没有名为“ encodings”的模块
  10. mysql 查询表注释
  11. HDU 2674 N!Again
  12. 北京交通大学离散数学 谓词逻辑_【精选】离散数学习题解答-第3章谓词逻辑.pdf...
  13. 使用matlab生成含正弦波表数据ROM
  14. python统计一个字符串中连在一起数字的个数.(如12asd25asfd,输出结果为2)
  15. 【InSAR 笔记2】哨兵一号精轨数据批量下载【修改0704】
  16. ug中许可证服务器,ug教程:ug服务器许可证(LMTOOLS)设置教程
  17. element-ui的走马灯详解
  18. Metasploit用法大全
  19. python图像锐化,图像加强、锐化,利用 Python-OpenCV 来实现 4 种方法!
  20. android绘制心形,Android中的心形按钮

热门文章

  1. 遇到安装3dmax2020版本时出现1603错误时解决方法
  2. 【数电基础知识】各逻辑运算符号盘点
  3. IDEA 打包jar
  4. linux安装惠普RGS软件,惠普RGS初印象
  5. pyltp实体识别_基于pyltp进行命名实体识别
  6. 【数竞笔记2】—— 常见积分方法
  7. 开发板实战篇4 RGB565 LCD刷颜色数据
  8. 银行保险机构信息科技外包风险管理办法学习笔记
  9. java怎么获取本机的ip地址_java如何获取本机IP
  10. 编程视频资源教程汇总