学习啦 > 学习电脑 > 玩转微信 >

ajax 实现微信网页授权登录的方法

时间: 加城1195 分享

  微信小程序开发是现在的热门项目之一,其中很多小程序或者网页第一步进入时候都需要授权登录,那么怎么实现这个功能呢?我们可以采用ajax实现,下面一起看看具体步骤!

  项目背景

  因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录。

  需求分析

  因为本人是一个phper ,所以,微信开发采用的是 EasyWeChat ,所以实现的方式是基于EW的。

  其实实现这个也麻烦,在实现之前,我们需要了解一下微信授权的整个流程。

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

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

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

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

  其实说白了,前端只需要干一件事儿,引导用户发起微信授权页面,然后得到code,然后跳转到当前页面,然后再请求后端换取用户以及其他相关信息。

  功能实现

  引导用户唤起微信授权确认页面

  这里需要我们做两件事,第一去配置jsapi域名,第二配置微信网页授权的回调域名

  构建微信授权的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 我们从连接中看到有两个变量,appId,以及 redirect_uri。appId 不用多说,就是咱们将要授权的微信公众号的appId,另一方个回调URL,其实就是我们当前页面的URL。

  用户微信登录授权以后回调过来的URL 会携带两个参数 ,第一个是code,另一个就是 state。才是我们需要做的一件事儿就是将code获取到然后传给后端,染后端通过code 获取用户基本信息。

  后端得到code 以后,获取用户基本信息,并返回相关其他信息给前端,前端获取到然后做本地存储或者其他。

  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)

  }

  })

  }

  补充:微信使用小技巧

  电脑登陆微信后,将手机调为静音状态:

  登陆微信不仅可以使用手机登陆,而且还可以使用电脑登陆。首先点开电脑版微信,使用手机扫描二维码登陆。

  手机的微信和电脑的微信可以同时登陆的,而且接收到的信息,电脑和手机都可以收的到。

  但是手机和电脑同时接收信息,两个设备都有提示音,这会感觉让人很烦。那么如何关掉手机端的声音呢

  当你在pc端登陆微信之后,在手机微信聊天界面顶部会有一条状态栏,点击它,然后在该界面中选择【手机静音】即可。

  也可以通过刚才的操作,快速的打开【文件传输助手】。

  拉黑微信运动里的好友:

  自从有了【微信运动】之后,每天都会为了占到榜首而去刷步数,但是你不想天天看到某人的封面、步数或是不想人某人看到你的步数,那么该如何操作。

  首先最简单、直接的方法就是拉黑该好友,但这太不道义了。

  你可以通过【微信运动】来拉黑好友。首先点开【微信运动】,然后点击【微信运动】页面右上角的【齿轮】图标。

  找到并点开【隐私及提醒设置】>【不与他(她)排行】,再点击【+】就可以把好友拉黑,你看不到ta的排行,ta也看不到你的排行。

  相关阅读:微信忘记了密码怎么办

  通过手机号找回:用手机注册或已绑定手机号的微信帐号,可用手机找回密码,在微信软件登录页面点击“忘记密码”=》通过手机号找回密码=》输入注册的手机号,系统会下发一条短信验证码至手机,打开手机短信中的地址链接(也可在电脑端打开),输入验证码重设密码即可。

  通过邮箱找回:通过邮箱注册或绑定邮箱、并已验证邮箱的微信帐号,可用邮箱找回密码,在微信软件登录页面点击“忘记密码”=》通过Email找回密码=》填写绑定的邮箱地址,系统会下发重设密码邮件至注册邮箱,点击邮件的网页链接地址,根据提示重设密码即可。

  通过注册QQ号找回:用QQ号注册的微信,微信密码同QQ密码是相同的,请在微信软件登录页面点击“忘记密码”=》通过QQ号找回密码=》根据提示找回密码即可,也可以点击这里进入QQ安全中心找回QQ密码。


微信网页授权登录的方法相关文章:

1.设置微信认证+Web认证的方法

2.企业微信的功能有什么及登录方法图文教程

3.解决qq号登陆不了微信的方法

4.手机腾讯视频微信登录方法

5.如何设置微信朋友圈权限

4020846