1.通过授权网址,拿到code

固定式授权网址:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx70697366a034c0f7&redirect_uri=http://wd1700564.pro.wdcase.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

所含参数:appid,redirect_uri可变,其他固定参数值
    appid,
    redirect_uri(回调地址),
    response_type,
    scope,
    state

授权成功后,通过$_GET['code']可以拿到返回的code值

2.通过code值拿到用户的access_token和openid

固定式获取网址:
https://api.weixin.qq.com/sns/oauth2/access_token?
appid=wx70697366a034c0f7&secret=0622bff1d1b1200a665b0caa4da7b3cd&code=$code&grant_type=authorization_code

所含参数:appid,secret,code可变,其他固定参数值
    appid,
    secret,
    code,
    grant_type

用cURL访问网址,成功访问后返回json格式的字符串,用json_decode(xx,true)转化为数组,通过$xx['access_token'],$xx['openid']可以拿到access_token和openid

3.通过用户的access_token和openid,用CURL微信登录,获取用户信息

固定式微信登录网址:
https://api.weixin.qq.com/sns/userinfo?
access_token=$access_token&openid=$openid(&lang=zh_CN)

所含参数:access_token,openid可变
    access_token,
    openid,
    lang(可写或不写)

用cURL访问网址,成功访问后返回json格式的字符串,用json_decode(xx,true)转化为数组得到用户信息
    'user_name'=>(string)$user_info['nickname'],//用户名
    'user_sex'=>$user_info['sex'],//性别
    'user_img'=>$user_info['headimgurl'],//头像
    'open_id'=>$openid,//用户的openid
    'user_time'=>time(),//登录时间

备注:
1.code:微信授权成功后会返回一个code

2.access_token:公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,有效期7200s,每天调用获取的次数只有2000次,建议保存到数据库或缓存起来。网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

3.openid:公众号的普通用户的一个唯一的标识,只针对当前的公众号有效

4.cURL:模拟浏览器请求的工具,比如获取远程的网页和接口,比类似功能的file_contents(),file(),readfile()强大
使用cURL发送URL请求四步:
    curl_init():初始化一个cURL会话
    curl_setopt():设置请求选项
    curl_exec():执行一个cURL会话,并获取相关的回复(返回json格式的数据)
    curl_close():关闭一个cURL会话
微信授权curl_setopt()要设置的选项
    CURLOPT_URL:需要获取的URL地址
    CURLOPT_SSL_VERIFYPEER:禁用后cURL将终止从服务端进行验证
    CURLOPT_SSL_VERIFYHOST:禁用后就不检查证书中是否有CN(common name)字段和校验当前的域名是否与CN匹配
    CURLOPT_RETURNTRANSFER:将curl_exec()获取的信息以文件流的形式返回,而不是直接输出

5.获取当前URL作为redirect_uri(回调地址)时要用到的$_SERVER[''],一般都封装在get_url()方法中
    如 URL是http://www.5idev.com/php/index.php/test/foo?username=hbolive
    $_SERVER['SERVER_PORT']:获取端口(80是http://;443是https://)
    $_SERVER['PHP_SELF']:获取URL除域名和参数的那块(如:/php/index.php/test/foo)
    $_SERVER['SCRIPT_NAME']:获取URL除域名和参数和文件名的那块(如:/php/index.php)
    $_SERVER['REQUEST_URL']:获取URL除域名的那块(如:/php/index.php/test/foo?username=hbolive)
    $_SERVER['PATH_INFO']:获取URL文件名(如:/test/foo)
    $_SERVER['QUERY_STRING']:获取URL的参数,不带问号"?"(如:username=hbolive)
    $_SERVER['HTTP_HOST']:获取域名(如:www.5idev.com)

6.urlencode()和urldecode(),一般用于URL
    urlencode():将字符串用URL编码
    urldecode():将以URL编码的字符串解码(":"用$3A代替;"/"用%2F代替)

--------------------
扩展:授权登录后可以继续做的事情
4.判断是否关注微信公众号

网址:
https://api.weixin.qq.com/cgi-bin/user/info?
access_token=$access_token2&openid=$openid

所含参数
    access_token:关注的微信号的access_token,保留7200s,过了两小时要重新获取
    openid:用户的openid

5.获取微信公众号access_token
网址:
https://api.weixin.qq.com/cgi-bin/token?
grant_type=client_credential&appid={$wechat[appid]}&secret={$wechat[appsecret]}

所含参数
    grant_type:固定参数值
    appid:微信公众号的appid
    secret:微信公众号的appsecret

关于微信授权与登录的相关操作(纯手敲)相关推荐

  1. mui微信授权和登录

    微信授权和登录 var authBtns = ['weixin']; //配置业务支持的第三方登录var auths = {};var oauthArea = document.querySelect ...

  2. 微信授权之登录、注册、关联微信号全流程图

    QQ:285679784   欢迎加入博主CSDN资源QQ群799473954(附加信息:CSDN博客)一起学习 ! 实现微信公众号内支付时,必须提供微信用户的openid.新用户刚进入页面时强制打开 ...

  3. uniapp实现微信授权一键登录

    <template><view class="login apple-safari-page"><button class="autho-b ...

  4. [小黄书小程序]微信授权登录

    在上一篇文章中,我们在后台实现了会员管理以及会员注册登录的逻辑.其中登录方式包括: 通过手机号码和验证码登录 通过微信授权登录 在小黄书小程序上,我们支持第二种登录方式.第一种方式,今后看情况再酌情进 ...

  5. Vue 移动端 hash模式下微信授权登录

    需求分析: 1.移动端微信公众号项目,需要获取微信授权进行登录 2.默认打开首页,在路由进入之前进行判断,有如下三种情况 3.本项目有两种账号类型:商家.企业,需在登录页进行选择 未授权过,跳到微信授 ...

  6. 小程序第三方微信授权登录的实现

    在微信小程序下,小程序登录功能一般会通过 OpenID 或 UnionID 作为唯一标识,与小程序服务的账号体系进行关联打通,完成用户账户体系的构建与设计. 如果在像支付宝小程序.百度小程序第三方平台 ...

  7. 自有App小程序第三方微信授权登录的实现

    在微信小程序下,小程序登录功能一般会通过 OpenID 或 UnionID 作为唯一标识,与小程序服务的账号体系进行关联打通,完成用户账户体系的构建与设计. 如果在像支付宝小程序.百度小程序第三方平台 ...

  8. 微信小程序并发服务器架构,「系统架构」如何设计一个健壮高效的微信小程序登录方案...

    登录涉及的面比较多:触发场景上,各种页面各种交互路径都可能触发登录:交互过程上,既需要用户提供/证明id,也需要后端记录维护,还需要保证安全性:复用场景上,既是通用功能,需要多场景多页面甚至多小程序复 ...

  9. 一篇文章,带你了解微信扫码登录

    文章目录 前言 一.功能背景 二.扫码登录原理 1.基本原理 三.实现效果图 1.登录页 2.点击微信账号登录 3.已绑定微信的账号 4.未绑定微信号的账号 四.代码实现 1.准备工作 2.编写代码 ...

最新文章

  1. Java中toString函数干嘛用?
  2. 【CodeForces - 1201C】Maximum Median(思维,水题)
  3. 测试显示富士通UHF RFID亚麻标签可在1.5T及3T的MRI系统内使用
  4. webpack入门学习手记(一) 1
  5. linux 内核 发送数据类型,Linux内核数据类型及跨平台
  6. java 格式化字符串
  7. 锐捷linux网卡,CentOS 7安装MentoHUSTt锐捷认证程序
  8. ARM处理器性能对比
  9. 三步激活win10(转)
  10. 刚培训的java程序员怎么找工作,快来看鸭~
  11. 计算机考证决心书怎样写
  12. sx1278组网01——网关
  13. 基于云的文档管理软件/文档管理系统(DMS)
  14. 【STM8】IAR 项目新建步骤
  15. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
  16. 导航网这个最强大吗?
  17. 一直以来,区块链的基础性和底层性,都是人们津津乐道的话题
  18. 测试人员,如何准备测试数据
  19. wallpaper怎么改后缀_怎么让家里无线网速变快
  20. Web迅雷远程任意文件读取漏洞

热门文章

  1. 使用光标查询10部门的员工姓名和工资,并打印__使用光标查询员工姓名和工资,并打印
  2. python 如何转换dataframe列的类型_如何使用Python将所有列从数值转换为分类
  3. 腾讯开源首个医疗AI项目,业内首个3D医疗影像大数据预训
  4. 递归算法学习系列之寻找第K大
  5. 记录一个在线压缩和还原压缩js代码的工具
  6. Android基础总结(八)Service
  7. SQL Server 跨库同步数据
  8. struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性
  9. 第三章 Models详解
  10. 从龙门镖局看自动化测试