1.先注册微信公众平台申请小程序账号

1.appid,小程序密钥

2.配置服务器,小程序后台配置

3.申请https,放行服务器443端口,宝塔面板可以免费申请https证书

这里大家可以自行安装baota,申请证书

接下来上代码 微信登录接口

/** 微信登录接口,其余参数由前端传递* @param $code* @return string|\think\response\Json* @throws \Psr\SimpleCache\InvalidArgumentException* @throws \think\db\exception\DataNotFoundException* @throws \think\db\exception\DbException* @throws \think\db\exception\ModelNotFoundException*/public function wxLogin($code){//code是前端传入的,1个code只能用一次if (empty($code))  return "code不能为空";//传入保存到数据库的参数$data["nickname"] = $this->request->param("nickaname");$data["phone"] = $this->request->param("phone");$data["avatar"] = $this->request->param("avatar");try {validate(["nickname"=>"require","phone"=>"require|mobile","avatar"=>"require"])->check($data);}catch (\Exception $e){return $e->getMessage();}$appid = ""; // 你的小程序id$appscreap = ""; //传入小程序密钥//接入这个地址传递参数$url = "https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$appscreap."&js_code=".$code."&grant_type=authorization_code";try {//用封装的geturl方法执行接口,返回参数,注意这个校验接口是get请求方式$info = $this->getUrl($url);//openId代表用户唯一标识,只需要判断用户表中是否有这个openid就可以//如果openid不为空就直接更新数据,如果为空就是注册$data["openId"] = $info["openid"];$data["session_key"] = $info["session_key"];//这里生成token$data["token"] = md5(sha1($data["openId"].time()));$getInfo = Db::name("user")->where("openId",$data["openid"])->find();if (empty($getInfo)){$dataData = Db::name("user")->insert($data);}else{$dataData = Db::name("user")->where("id",$getInfo["id"])->update($data);}}catch (\Exception $e){return $e->getMessage();}if (empty($dataData)){return "登录失败";}$dataInfoNation = Db::name("user")->where("id",$getInfo["id"])->find();//将生成登录成功过的数据保存到redis缓存中\think\facade\Cache::store("redis")->set("user_".md5($getInfo["id"]),$dataInfoNation);return json(["msg"=>"登录成功",$dataInfoNation]);}

2.getUrl执行接口

   /** geturl* @param $url*/public function getUrl($url){$headers = array('User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36','Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding:gzip, deflate','Accept-Language:zh-CN,zh;q=0.8','Cache-Control:max-age=0','Proxy-Connection:keep-alive',);$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, 1);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_PROXY, "http://proxynj.zte.com.cn:80");curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);$data = curl_exec($curl);curl_close($curl);}

本期就到这里,如果觉得写的不错的话就点个小心心

thinkphp6-----微信授权登录相关推荐

  1. 慕课网_《微信授权登录》学习总结

    时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:无 学习源码:https://github.com/zccodere/ ...

  2. html5+ mui框架 微信授权登录后跳回app无任何回调事件

    2019独角兽企业重金招聘Python工程师标准>>> 微信授权登录可以调起微信,但是在微信上点击确认登陆后跳回app,但是之后无任何回掉事件. 问题原因: 1 因为我在集成Face ...

  3. thinkphp 微信授权登录 以及微信实现分享

    <?php namespace app\wechat\controller; use think\Controller; use think\Request; /** * 微信授权登录类 * U ...

  4. ios微信登录不上服务器,iOS微信授权登录

    首先需要确保你的App应用在微信开发平台上注册创建并获得对应的接口,对应登录.支付等功能还涉及付费,具体申请流程就不再这里说了.到开放平台->管理中心->移动应用->查看应用,确认你 ...

  5. code换取微信openid_微信授权登录开发的两种方式

    本文主要针对微信公众号(公众平台的开发) 首先理解一个概念:OAuth: OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表), ...

  6. 五行代码搞定微信授权登录

    Authing 通过 SDK 为开发者提供了一种快速在微信网页中获取用户信息并完成登录的方法.如果用户在微信客户端中访问第三方网页.公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...

  7. Java版本微信授权登录(测试版)

    这篇文章是对微信授权登录的一个测试版本,并不能直接在生产上使用,对于在生产上正式使用将会在下一篇中描述. 一,首先需要以下两个数据 appID和appsecret 如何获取这两个数据,请先登录微信公众 ...

  8. 微信授权登录mock(在没有真实微信账号的情况下测试大量微信账户授权登录的情况)...

    场景介绍 对于构建在微信公众号的系统,帐号体系往往使用微信授权登录(如各类微信商城应用系统). 这样操作不仅可以实现静默注册,对用户几乎是无感的,同时也达到了区分用户,获取用户基本信息(头像,昵称等) ...

  9. html5+ mui框架 微信授权登录无响应,不回跳APP

    2019独角兽企业重金招聘Python工程师标准>>> 微信授权登录可以调起微信,但是在微信上点击确认登陆后无响应,不跳回到APP. 问题解决方法: 1. 参考文章做排除:http: ...

  10. 微信授权登录(微信订阅号使用测试账号)

    1.微信授权登录: 微信公众号测试登录: 准备: 1.1 花生壳! 下载地址:http://hsk.oray.com/download/ 1.2 微信公众号:https://mp.weixin.qq. ...

最新文章

  1. LeetCode实战:爬楼梯
  2. c++学习笔记之运算符重载
  3. 在SAP API hub自动生成使用ABAP调用API的胶水代码
  4. P2634 [国家集训队]聪聪可可(点分治做法)
  5. Lambda表达式和流API:基本示例
  6. java 不编译咋办_java – 为什么JVM不编译整个程序,而不是逐个编译?
  7. yum 安装apache php mysql
  8. Python机器学习:PCA与梯度上升001什么是PCA
  9. 【转】context和getApplicationContext()介绍
  10. 极光IM简单代码(代码比较清晰)
  11. NETBEUI协议的优点及应用
  12. 项目管理的过程中如何做好沟通管理
  13. 映射表跟业务表的区别_方正飞鸿中间件开发平台
  14. java系列之:获取当前时间和当前时间上一个小时的时间
  15. 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...
  16. 2022数维杯数学建模A题
  17. “我怎么就被一张照片出卖了?”
  18. 将数字转化为千分位形式
  19. java 屏蔽广告js_用js屏蔽被http劫持的浮动广告实现方法
  20. 智牛股_第5章_Netty+PowerDesigner

热门文章

  1. CSDN图片去水印干货
  2. Python骚操作:分析史上最好用的APP有哪些?
  3. OSI模型;TCP/IP
  4. Java_JUC_CountDownLatch/CyclicBarrier循环屏障/Semaphore信号灯/枚举
  5. 鸿蒙策略股票交易系统,股票交易策略有哪些?5种不同的交易策略解读
  6. Oracle基础之保留字和关键字
  7. PS怎么抠出圆形图(可调整边缘)
  8. sql安装出错,安装程序配置服务器失败的解决方案 [转]
  9. DPL常用激活函数求导
  10. [生存志] 第84节 列子淡泊号冲虚