微信授权注册&登录

首先要明确一点,这里指的是在微信内浏览器使用的,利用微信公众号获取用户授权信息之后进行的注册登录,在经过上一次微信支付的摧残之后,这次做登录流程要顺利得多,简单描述一下流程。

首先贴一下微信开发者文档中对于网页授权的说明文档‘戳这里’,对于授权的接口如何使用,我这里不会详细的说明,文档对于接口参数写的还是比较清楚的,主要介绍一下注册流程

准备工作

  • 确保公众号可以使用,拿到appid和密钥
  • 微信公众平台修改授权回调页面
  • 可以使用微信开发者工具调试

获取用户授权

1
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

这一步和微信支付的授权唯一的区别就在于scope属性的不同,由于我们需要获取用户信息,就不能使用静默授权,而是使用scope=snsapi_userinfo,通过在前台请求api,拉取授权页面,用户同意之后在回调页面获取code值。

获取用户openid

使用上一步拿到的code值,请求以下api

1
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

这一步需要放在服务端请求,前端会跨域,请求成功后拿到返回的access_token和’openid’

微信登录

拿到用户openid之后,就可以查询数据库中用户信息了(注册时把用户微信登陆的openid和unionid存一下),如果有已经注册过的用户,直接登录,没有的话继续走注册流程

拉取用户信息

使用openidaccess_token发起请求

1
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

前台会跨域,同样放在后台进行,这样就拿到了微信用户的详情信息

注册用户

使用拿到的用户信息创建用户,成功后直接登录

需要注意的一点是,如果有多个微信应用时,同一用户在app,公众号,小程序这些获取到的openid都是不同的,但是unionid是唯一的,可以通过unionid来进行用户的识别

结束语: 没错,这一篇就是这么短!

文章目录
  1. 1. 准备工作
  2. 2. 获取用户授权
  3. 3. 获取用户openid
  4. 4. 微信登录
  5. 5. 拉取用户信息
  6. 6. 注册用户
|