blog

当前位置:首页>文章中心>blog
一个公众号实现两个多个网站自动登录
blog 2017-08-01 1 阅读

一个公众号实现两个多个网站自动登录

小泥巴 小泥吧科技 2017-08-01
那么新的问题来了 如果我有两个站点,一个是主站 www.weixin.com 还有一个商城 shop.weixin.com 甚至还有个其它应用,比如 shequ.weixin.com, 怎么能做到都支持微信自动登录呢? 在微信的官方文档中有明确的说明 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、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可 也就意味着必须自己去实现(第三方平台必须支持类似接口),那么详细的教程来了:

先看结构图

微信中间服务结构图.png
图示已经讲的很清楚了,具体我们再进一步细化

公众号授权回调域名

到微信公众号后台,开发-接口权限,找到『网页授权获取用户基本信息』设置好回调域名,比如你设置的是 open.weixin.com

shop.weixin.com 开发

直接根据官方文档进行请求,https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 微信并没有判断请求来源是否是回调域名,所以可以这样直接请求 REDIRECT_URI 参数应该是 open.weixin.com/wechat/callback 这个参数是回跳的关键参数,微信会检测此参数是否你在公众号后台设置的回调域名

授权回跳到 open.weixin.com/wechat/callback

此时你需要在 open.weixin.com 上开发中间服务 根据图示,完成鉴权和获取用户数据,并存储相应数据 完成用户数据读取和保存,就立即回跳 shop.weixin.com 怎么判断回跳地址?可以巧妙利用state参数,也可以修改REDIRECT_URI参数为open.weixin.com/wechat/callback?source=shop.weixin.com来为二跳做准备

回跳到shop.weixin.com

不建议直接带用户数据明文跳转,应该是把openid/state等参数跳回shop.weixin.com,然后shop.weixin.com根据openid/token向中间服务 open.weixin.com 获取用户数据 那么,同理 www.weixin.com shequ.weixin.com 等等都可以使用微信帐号自动登录了~
作者:daocatt 链接:http://www.jianshu.com/p/e788a14c0297 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关标签:

发表评论:

评论记录:

未查询到任何数据!
QQ咨询
回电话
回拨通话

我们稍后回拨您的电话

座机请加区号

微信联系
微信扫一扫
微信二维码

扫码加微信