一、微信OAuth2.0机制网页授权登录,获取用户基本信息。主要有以下简略步骤:
  第一步:用户同意授权,获取code
  第二步:通过code换取网页授权access_token
  第三步:拉取用户信息(需scope为 snsapi_userinfo)
  微信网页授权开发文档请看官网:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

二、关于Scope 权限的两种
snsapi_base 默认允许授权,无须用户同意
snsapi_userinfo 进入授权页需要用户同意才可进入

三、需要注意的点

设置IP白名单
检查当前公众号是否为服务号
回调地址填写是否正确
回调地址需要url编码 如 https:// 为 http%3A%2F%2F

四.前台
第一步: 请求下方地址,拿到服务器回调的Code
请求地址: 微信公众平台APPID,回调地址与scope类型

`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${回调地址}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`


授权后会获得codehttps://***.cn/?code=***********&state=123#/

五、后台
获取access_token
获取用户基本信息(头像、昵称)


$code = $input_data['code']??''; //前台获得的code值:061Wxn0w3uLaXV20ep3w3Qm1nA0Wxn0w$access_token = WechatWeb::accessToken(); //可获得access_token :42_bb9agZJzvR3jFHIFa4BmfMUWPdH2uagt0F3l4T9jZigTVm8GP_zkvLAxc0yHV79nY85OrdCmmiEARajoLlm3sVkDLPH-aRaRsWcrWcK8W5dtk6G5Jnf9YDnkRchIHY90f9nHbBvCdIqbL_YDRPBbACALJV
//获取access_token的域名:  'https://api.weixin.qq.com/cgi-bin/token?appid={$app_id}&secret={$app_secret}&grant_type=client_credential';if(empty($access_token)) throw new \Exception('第三方登录方式异常:access_token',0);$openid = WechatWeb::getOpenid($code); //可通过code获取 获取用户基本信息的access_token和openid
/* 域名: "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$app_id}&secret={$app_secret}&code={$Code}&grant_type=authorization_code";^ array:5 ["access_token" => "42_5d_j3Tk5s8LF0rArXu-9CLI8t3LV1o8kGFCq9qo_fU4OyZd7bULGTaKU2VBHWIxsfbjqHS78N7fbgXFh9d2GdQ""expires_in" => 7200"refresh_token" => "42_aahPTh5Dn0lc2De5BoPPlXtovXRX7eoO0gT6EfyQcGaq-vT_iOo4TOll-qpnbeGi_ftI2dpE0FRt262yR-M3FA""openid" => "oW2tQ6F2Wnxzp4rJiok5NTFX9c0Y""scope" => "snsapi_userinfo"]* */
if(empty($openid['openid'])) throw new \Exception('第三方登录方式异常:openid',0);$auth_info =  WechatWeb::actToUserInfo($openid['access_token'],$openid['openid']);
/*
获得的$auth_info 用户信息域名:'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid;
此处的$access_token为网页授权$access_token非普通授权$access_token
^ array:9 ["openid" => "oW2tQ6F2Wnxzp4rJiok5NTFX9c0Y""nickname" => "深正互联-超如""sex" => 0"language" => "zh_CN""city" => """province" => """country" => """headimgurl" => "https://thirdwx.qlogo.cn/mmopen/vi_32/rAjztjufSYsbZnicA9VxQiao3DvUUMaJlbU0sWvmGq2icxia61zJJ8aTSzFibiaDSRaV53dgXZlsvVRlW2iaIYrJQUG4w/132""privilege" => []]* */
empty($php_input['name']) && $update_data['name'] = $auth_info['nickname'];

PHP微信网页授权登录相关推荐

  1. 微信公众号开发(一) 微信网页授权登录

    微信网页授权登录 前期准备 授权登录 获取微信数据 处理授权拒绝 前期准备 1.微信公众号开发,首先要搞一个公众号,开发阶段可以申请一个公众平台测试账号. (进入到微信公众公众平台,找到开发者工具,点 ...

  2. php微信授权ajax,ajax 实现微信网页授权登录

    项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个PHPer ,所以,微信开发采用的是 EasyWeCha ...

  3. java ajax 微信网页授权_ajax 实现微信网页授权登录的方法

    AJAX 的 ajax 实现微信网页授权登录的方法 项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个ph ...

  4. 微信网页授权登录的方法

    微信网页授权登录官方文档 微信网页授权登录的方法–推荐文章一 微信网页授权登录的方法–推荐文章二 总结: 微信授权方式(scope的属性值控制): 应用授权作用域,snsapi_base (不弹出授权 ...

  5. Springboot + Spring Security多种登录方式:账号用户名登录+微信网页授权登录

    一.概述 实现账号用户名+微信网页授权登录集成在Spring Security的思路,最重要的一点是要实现微信登录通过Spring Security安全框架时,不需要验证账号.密码. 二.准备工作 要 ...

  6. 微信网页授权登录java后台实现

    建议先阅读微信开发-网页授权登录官方文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_au ...

  7. php微信登录代理转发,PHP微信网页授权登录

    PHP微信网页授权登录 2018年04月10日 15:44:03阅读数:601 namespace Org\WeChat; /** * 微信授权相关接口 */ class Wechat { //高级功 ...

  8. SpringBoot + Spring Security多种登录方式:账号+微信网页授权登录

    一.概述 实现账号用户名+微信网页授权登录集成在Spring Security的思路,最重要的一点是要实现微信登录通过Spring Security安全框架时,不需要验证账号.密码. 二.准备工作 要 ...

  9. Spring Boot Security 多种登录方式集成配置思路及方法 账号用户名登录+微信网页授权登录

    概述 实现账号用户名+微信网页授权登录集成在Spring Security的思路 前情提要 本思路完全抛弃Spring Security的配置式账号密码登录模式,采用完全独立的Filter.Provi ...

  10. ajax 微信code获取_ajax 实现微信网页授权登录的方法

    项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个phper ,所以,微信开发采用的是 EasyWeCha ...

最新文章

  1. java四种xml_Java中四种XML解析技术
  2. Havel-Hakimi定理
  3. C语言中的变量是怎么回事?
  4. react textarea 空格为什么不换行_你需要的 React + TypeScript 50 条规范和经验
  5. 【学习笔记】传输层:TCP协议(报文段、连接管理{握手}、可靠传输、流量控制、拥塞控制)
  6. java模拟手机浏览web_PC上测试移动端网站和模拟手机浏览器
  7. vue获取table一列数据_vue中比较重要的小知识点
  8. 当子元素设置position absolute的时,父元素必须设置position属性
  9. nginx反向代理模块配置详解_nginx反向代理配置详解
  10. 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)...
  11. linux添加Qt的fontconfig,qt – 如何在Red Hat 5.3中将fontconfig更新为更新版本?
  12. python小波分解相关
  13. Android 腾讯地图定位功能一二三
  14. 遍历文件夹批量重命名
  15. linux打开pkg文件怎么打开,archlinux32无法打开文件 ×××.pkg.tar.zst 无法安装新包,如何解决?...
  16. 玻色量子与华夏、人行、龙盈智达联合发表量子金融研究成果
  17. 在阿里云ACP认证考试中授权码有效期时限是多久?
  18. 探花交友_第7章-完善消息功能以及个人主页
  19. 18000担粮草和新四军情报
  20. 考研政治——马原相关哲理

热门文章

  1. 【unity shader】毛绒材质效果的实现
  2. 使用 PhyML 构建进化树
  3. 高效记忆/形象记忆(06)英语单词记忆-字母编码
  4. 解决com.lowagie.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.
  5. python excel数据合并_如何用python将excel数据合并
  6. 批量读取文件夹下所有excel文件里的内容,放入列表 把所有不管行列名如何excel合并成一个大的excel 批量读取excel,批量合并excel
  7. Excel如何合并相同项单元格
  8. 计算机容斥原理,三集合容斥原理解题技巧
  9. Mac 谷歌浏览器chrome恶意插件劫持Any search(TotalSearchToolbox)处理
  10. 拆 米家台灯_拆机测评 篇二: 就是一台149元 Mijia 米家台灯,有什么可测的?...