微信授权
注意点
如果用户在微信端访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑
- 在微信公众号请求请求用户网页授权之前,开发者需要先到公众平台官网中的开发者中心配置网页授权回调域名。
- 访问地址 -> 判断 code 是否存在,不存在则跳转地址(授权地址,后台处理),跳转到授权页面,用户授权后跳转到约定的 callback 页面,该页面地址参数带有 code,把 code 传给后台,后台可以获取用户信息,同时返回给前端一个 token 和 token 失效时间。
- 后台通过 code 获取网页授权 access_token 和 openid ,再通过 access_token 和 openid 获取 userinfo。
总结
在微信授权这个流程里,前端所能做的不多,大多通过后台处理。
前端所做的内容:
- 请求接口,根据接口返回的错误类型,(无 token,token 失效)时,调用接口(一般为获取登录地址),跳转到后台返回的登陆地址即微信授权页面,
- 在微信授权页面,用户授权之后,跳转到授权后重定向的回调链接地址(一般约定为项目根目录下的 callback.html),该链接带有 code,再调用接口把 code 传给后台(一般为微信登录回调接口),该接口会返回 token,至此完成授权登录。
- 授权的两种方式(静默授权:用来获取 appid;用户手动同意授权:获取用户信息)(由业务处理决定使用哪种授权方式)
参考
- 官方 api 微信网页授权
- 网上例子 微信公众号之网页授权获取用户基本信息
例子 2 参考流程即可,代码是后台处理逻辑 java 语言,对前端来说,只需明白授权流程和自己所需要做的即可。
其他知识点
调用 微信 JS-SDK (例如 位置信息, 内置地图, 扫码等)
- 第一步 需要登录微信公众平台,在公众号设置的功能设置里填写"JS 接口安全域名";
- 第二步 在需要调用 JS 接口的页面引入如下 JS 文件, [http://res.wx.qq.com/open/js/jweixin-1.4.0.js];
- 第三步 通过 config 接口注入权限验证配置;
所有需要使用 JS-SDK 的页面必须先注入配置信息,否则将无法调用
通过调用后台接口(一般为生成微信数据),获取 config 所需的参数(appid, timestamp, nonceStr, signatrure),