omniauth-wechat-oauth2
omniauth-wechat-oauth2 copied to clipboard
update url
新版本的微信公众号授权修改了 BASE URL,我的PR进行了更新。
同时,稍优化了一下 README
微信登录文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
我们这里也遇到了这个问题, 如果是新的关注用户用之前那个 qrconnect 的地址, 会显示 scope 错误. 我这里已经降回旧版本用 oauth2/authorize 这个地址了.
@sunteya 所以我的理解是这个PR(使用oauth2/authorize)的改动你已经测试过了,可以直接发布,对吗?
场景一 https://open.weixin.qq.com/connect/oauth2/authorize
公众号(服务号)平台
场景二 https://open.weixin.qq.com/connect/qrconnect
微信开放平台
上面的图片分别以场景一及场景二作为下文引用说明:
场景一为公众号平台来源,使用的 URL 为/connect/oauth2/authorize
针对移动应用,如果在桌面浏览器上打开,会有场景一的提示(请在在微信客户端打开链接);
场景二为是目前 gem 的行为,是微信开放平台来源,使用的 URL 为 /connect/qrconnect
,如果使用手机端打开,你需要拿第二台手机或是截屏再让微信扫相册的图片才可以登录。
我个人比较偏向于通过 snsapi_userinfo
和 snsapi_login
去切换,但是否共用一个 URL 这部分我还没有测试(改 callback 等腾讯审核中)。
题外话,如果使用 snsapi_userinfo
的话,腾讯也有来自 Apple 的无奈(大家每年缴600给我,让我也无奈无奈吧):
3、对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppInstalled函数 ),对未安装的用户隐藏微信登录按钮,只提供其他登录方式(比如手机号注册登录、游客登录等)。
开放平台的有专门的 gem 包: https://github.com/mycolorway/omniauth-open-wechat-oauth2
所以这边只用在场景一。
看来 README.md 要大改动了。
@NeverMin 如果支持两个场景, 那就明确区分开。两个 URL,还可以讲一下如何支持 unionid .
@sunteya 所以我的理解是这个PR(使用oauth2/authorize)的改动你已经测试过了,可以直接发布,对吗?
@Eric-Guo 我这里的做法是把 版本号降回了 0.1.0
, 但问题主要是由于 授权地址不对导致的.
公众号的授权需要使用 https://open.weixin.qq.com/connect/oauth2/authorize
而开放平台的授权需要使用 https://open.weixin.qq.com/connect/qrconnect
这个 Pull Request 看着只修改了这些内容, 所以应该是没问题的.