微信网页授权登录的方法

微信网页授权登录官方文档
微信网页授权登录的方法–推荐文章一
微信网页授权登录的方法–推荐文章二

总结:
微信授权方式(scope的属性值控制):

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )

  • 静默授权
    即scope= scopr_base是静默授权,也就是不弹出页面,直接获取用户信息
  • 非静默授权(无需关注公众号,也可获取用户信息关注公众号后会是无感知的,个人比较青睐这种方式)
    -在这里插入图片描述
    scope=scope_userinfo是非静默授权,用户需要同意授权,然后通过获得的openid获取用户的昵称,性别,城市等信息

1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;
2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。

网页授权流程分为四步

1、引导用户进入授权页面同意授权,获取code

说白了就是跳转到微信的一个网址,携带将要授权的微信公众号的appId,另一方个回调URL,其实就是我们当前页面的URL,然后服务端会自动跳转回来,携带了code和state
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE

// 获取地址栏中的参数
function getUrlParam(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  var r = window.location.search.substr(1).match(reg);
  // 对字符串值进行解码
  if (r != null) return unescape(r[2]);
  return null;
}
 
function wxLogin(callback) {
  var appId = 'xxxxxxxxxxxxxxxxxxx';
  var oauth_url = 'xxxxxxxxxxxxxxxxxxx/oauth';
  var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + location.href.split('#')[0] + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"
  var code = getUrlParam("code");
  if (!code) {
    window.location = url;
  } else {
    $.ajax({
      type: 'GET',
      url: oauth_url,
      dataType: 'json',
      data: {
        code: code
      },
      success: function (data) {
        if (data.code === 200) {
          callback(data.data)
        }
      },
      error: function (error) {
        throw new Error(error)
      }
    })
  }

第2,3步骤其实一般是在服务端进行操作的,第4步是当前端获取code之后,发送网络请求,用于向服务器获取openid,服务端进行2,3步骤操作后响应结果给客户端

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信OAuth2网页授权登陆接口,微信OAuth2网页授权登陆接口,在你的网站上放上可以扫码登陆,会不会吸引更多用户去注册,现在你只需要简单的配制一下就可以轻松实现,还不快点拿走,微信扫码登陆接口开发你只要需要把配制文件中的APPid、KEY等修改为你自己中你申请的时的就可以,傻瓜式操作,无论你是技术大神还是刚入门的小白,只需修改一下配制文件,便可帮助你实现各种网站登陆。 使用方法 1. 配置网页授权域名 登录微信公众平台后台,在左侧目录底部找到“开发”-“接口权限”,点击进入并在接口列表中找到“网页授权获取用户基本信息”,点击右侧“修改”,在授权回调域名中填自己的域名,例如 www.abc.com,注意此处是域名,不是网址,所以不带http,也不带/等。 2. 修改参数配置 在左侧目录底部找到“开发”-“基本配置”,找到APPID和APPSECRET两个参数的值,其中APPSECRET的值默认是隐藏的,需要微信扫描验证才得显示。 使用Notepad++等编辑器打开,weixin.class.php文件,修改其中的APPID和APPSECRET参数,并保存。 define('APPID', "111111"); define('APPSECRET', "111111"); 3. 上传代码 将Demo代码上传到上述域名网站目录,比如上传到根目录的oauth2目录,这样,该Demo的访问路径将是 http://www.abc.com/oauth2/index.php 4. 访问体验 将上述目录在微信中打开,就可以体验微信的OAuth2.0网页授权过程。
微信网页授权登录demo是一个示例程序,用于展示如何在网站或应用中使用微信登录功能。 首先,我们需要在微信公众平台上申请一个开发者账号,并创建一个应用。在应用设置中,我们需要配置网页授权的回调地址。 接下来,我们可以开始编写示例程序。首先,我们需要引入微信提供的SDK,这个SDK包含了一些必要的函数和方法。 在程序中,我们首先需要处理用户点击登录按钮的事件。当用户点击登录按钮时,我们需要调用微信的JSAPI,发起授权请求。我们可以通过调用微信提供的接口,获取到一个临时的code。 接着,我们需要通过这个code,向微信服务器发送请求,获取用户的access_token和openid。这些信息将用于后续的用户信息获取。 一般情况下,我们会将这些信息存储在服务器端或数据库中,以供后续使用。在示例程序中,我们可以简单地将这些信息暂存到本地的session中。 最后,我们可以根据用户的access_token和openid,通过微信提供的接口,获取到用户的基本信息,如昵称、头像等。 至此,我们就完成了一个简单的微信网页授权登录demo。当用户在我们的网站或应用中点击登录按钮后,会跳转到微信授权页面,用户同意授权后,我们可以获取到用户的基本信息,实现登录功能。 需要注意的是,我们在开发过程中还需要处理一些异常情况,如用户未同意授权授权过期等。另外,由于微信的接口是需要网络访问的,因此我们需要确保程序可以正常访问网络。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值