omniauth-wechat-oauth2 icon indicating copy to clipboard operation
omniauth-wechat-oauth2 copied to clipboard

update url

Open windy opened this issue 5 years ago • 8 comments

新版本的微信公众号授权修改了 BASE URL,我的PR进行了更新。

同时,稍优化了一下 README

windy avatar Aug 26 '19 07:08 windy

微信登录文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

windy avatar Aug 26 '19 07:08 windy

我们这里也遇到了这个问题, 如果是新的关注用户用之前那个 qrconnect 的地址, 会显示 scope 错误. 我这里已经降回旧版本用 oauth2/authorize 这个地址了.

sunteya avatar Sep 03 '19 08:09 sunteya

@sunteya 所以我的理解是这个PR(使用oauth2/authorize)的改动你已经测试过了,可以直接发布,对吗?

Eric-Guo avatar Sep 03 '19 11:09 Eric-Guo

场景一 https://open.weixin.qq.com/connect/oauth2/authorize 公众号(服务号)平台

场景二 https://open.weixin.qq.com/connect/qrconnect 微信开放平台

上面的图片分别以场景一场景二作为下文引用说明: 场景一为公众号平台来源,使用的 URL 为/connect/oauth2/authorize针对移动应用,如果在桌面浏览器上打开,会有场景一的提示(请在在微信客户端打开链接);

场景二为是目前 gem 的行为,是微信开放平台来源,使用的 URL 为 /connect/qrconnect,如果使用手机端打开,你需要拿第二台手机或是截屏再让微信扫相册的图片才可以登录。

我个人比较偏向于通过 snsapi_userinfosnsapi_login 去切换,但是否共用一个 URL 这部分我还没有测试(改 callback 等腾讯审核中)。

题外话,如果使用 snsapi_userinfo 的话,腾讯也有来自 Apple 的无奈(大家每年缴600给我,让我也无奈无奈吧)

3、对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppInstalled函数 ),对未安装的用户隐藏微信登录按钮,只提供其他登录方式(比如手机号注册登录、游客登录等)。

NeverMin avatar Sep 05 '19 15:09 NeverMin

开放平台的有专门的 gem 包: https://github.com/mycolorway/omniauth-open-wechat-oauth2

所以这边只用在场景一。

windy avatar Sep 06 '19 02:09 windy

看来 README.md 要大改动了。

NeverMin avatar Sep 06 '19 04:09 NeverMin

@NeverMin 如果支持两个场景, 那就明确区分开。两个 URL,还可以讲一下如何支持 unionid .

windy avatar Sep 06 '19 04:09 windy

@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 看着只修改了这些内容, 所以应该是没问题的.

sunteya avatar Sep 06 '19 06:09 sunteya