设为首页 收藏本站
查看: 1585|回复: 0

[经验分享] 捋一捋PHP第三方微信登录

[复制链接]

尚未签到

发表于 2018-12-11 14:31:22 | 显示全部楼层 |阅读模式
  PC端扫二维码登录
先说步骤吧:
    微信网站登录的文档在https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=41ab5f757248bbbdcc2aad1a6d52b49fdc19579e&lang=zh_CN
  
    1.微信登录请求,其实你可以当成是个url跳转。https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
        参数 是否必须 说明
        appid 是 应用唯一标识
        redirect_uri 是 重定向地址,需要进行UrlEncode
        response_type 是 填code
        scope 是 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
        state 否 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf×××(跨站请求伪造×××),建议第三方带上该参数,可设置为简单的随机数加session进行校验
        把appid参数传给开放平台。链接页面会显示一个二维码。
         DSC0000.png
    2.用户扫码二维码,扫码成功后,会跳转回你传的域名地址。
        同时域名后面会带有code和state参数。这个code则是我们需要拿到的钥匙
        redirect_uri?code=CODE&state=STATE
    3.在redirect_uri跳转的页面或者控制器中,接收code值
        code每次会生成一个,用后即会销毁,也就是你不能不停跳转。
    4.通过appid、appSecret还有code值,请求open的access_token接口,获得access_token。
        {
            "access_token":"ACCESS_TOKEN",
            "expires_in":7200,
            "refresh_token":"REFRESH_TOKEN",
            "openid":"OPENID",
            "scope":"SCOPE",
            "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
        }

        参数 说明
            access_token 接口调用凭证
            expires_in access_token接口调用凭证超时时间,单位(秒)
            refresh_token 用户刷新access_token
            openid 授权用户唯一标识
            scope 用户授权的作用域,使用逗号(,)分隔
            unionid 当且仅当该网站应用已获得该用户的userinfo授权时,才会出现该字段。

        这里解释一下,access_token是接口凭证,请求接口需要带上,时间为2个小时。openid是获取用户信息的参数,就如username。而unionid则是uid,用户的唯一ID。
    5.拿到token和openid后,可以通过UserInfo接口获得用户数据。https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
        正确的Json返回结果:
        {
            "openid":"OPENID",
            "nickname":"NICKNAME",
            "sex":1,
            "province":"PROVINCE",
            "city":"CITY",
            "country":"COUNTRY",
            "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
            "privilege":[
                "PRIVILEGE1",
                "PRIVILEGE2"
            ],
            "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
        }


微信网页授权(微信浏览器)即H5微信登录
  网页授权流程分为四步:
  1、引导用户进入授权页面同意授权,获取code
  2、通过code换取网页授权access_token(与基础支持中的access_token不同)
  3、如果需要,开发者可以刷新网页授权access_token,避免过期
  4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
  如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650213-1-1.html 上篇帖子: centos7配置php 下篇帖子: php获取base64图片大小
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表