zoukankan      html  css  js  c++  java
  • 微信OAuth2.0网页授权

    1.OAuth2.0网页授权
    关于网页授权的两种scope的区别说明
    1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
    2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
    3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的

    另一种说法
    应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)
    2.注意网页授权access_token,和全局access_token是不同的,设置网页授权的回调域名
    在域名根目录下,新建一个文件,命名为oauth2.php,其内容为
    <?php
    if (isset($_GET['code'])){
    echo $_GET['code'];
    }else{
    echo "NO CODE";
    }
    ?> 构造请求https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=http://mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

    这里就获取到code了
    然后用code获取网页授权的access_token 构造url
    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    最后用授权access_token获取用户的信息
    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
    浏览器执行获取到json数据

  • 相关阅读:
    C#通过属性名字符串获取、设置对象属性值
    程序员的入门 简单的编程HelloWord
    第二章
    Winform笔记
    Semantic框架的使用
    Java多线程中锁的理解与使用
    vue实用组件——页面公共头部
    SpringBoot 整合ElasticSearch,实现站内搜索,高亮关键字
    maven出现如下报错Dmaven.multiModuleProjectDirectory system property is not set
    vue中引入bootsrtap,jquery,elementUI
  • 原文地址:https://www.cnblogs.com/luyu521/p/6141289.html
Copyright © 2011-2022 走看看