0%

OAuth2.0之微信登录授权

协议介绍

当你开始使用一个网站还是手机应用的时候, 那么第一步很有可能是从注册开始的, 从最初一丝不苟的填写一串表单注册,到使用短信验证码注册, 体验越来越好, 不过这个时候也会带来几个问题:

  • 用户还是感觉麻烦进而不再注册,懒惰是人类的发展一大动力
  • 越来越多的账号需要记忆,忘记账号的情况也越来越多
  • 注册之后没有社交关系
  • 个人资料的设置
    采用授权方式的OAuth2.0协议的出现解决了以上的各种问题,什么是OAuth2.0呢

一图顶千言

  1. (引导用户发起授权请求)客户端向用户询问,用户允许授权
  2. 获取到codestate
  3. code发送给服务端, 服务端携带code请求验证服务器,获取OpenIDAccess Token
  4. 根据OpenIDAccess Token,继续请求资源服务器,获取用户信息

一图顶千言

现在流程已经比较清晰了,其中步骤1,步骤2是前端处理,后面是服务端处理,可以将用户信息存到用户表,并生成token返回前端用于身份校验

微信对接

官方文档

1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.htmlhttp://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.comhttp://music.qq.comhttp://qq.com无法进行OAuth2.0鉴权

3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

  1. 第一步:用户同意授权,获取code
  2. 第二步:通过code换取网页授权access_token
  3. 第三步:刷新access_token(如果需要)
    4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

三种思路

调试

使用内网穿透,代理域名
最后放上node写了一个demo, 源码地址

坚持原创技术分享,您的支持将鼓励我继续创作!