您好!
PC端用户使用微信联合登陆,当注册的网站信息和二维码显示在页面上后,用户扫描二维码以进行授权或拒绝(拒绝可能是用户有意或点错)。微信会返回code和state参数(正面情况 - 用户授权)或仅返回state参数(负面情况 - 用户拒绝授权)。
问题: PC端当用户扫描二维码并在移动端个人微信APP里拒绝授权时,我们发现在此场景中微信服务器”什么都没有返回”(state参数也没有返回),微信官方文档英文版(https://developers.weixin.qq.com/doc/oplatform/en/Website_App/WeChat_Login/Wechat_Login.html)告诉我们说用户拒绝授权时系统重定向只会携带state参数,而不携带code参数(redirect_uri?state=STATE),但同样的一篇官方文档只是切换成中文版(https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html)又告诉说在这种情况下不会发生重定向(但未详述回参的情况)。能否请您确认一下,对于上述情况,微信服务器不返回任何内容是否为正确行为?在此情况下是否应该返回state参数? 微信服务器什么都没有返回是否可能是因为配置缺失? 如果可能是, 那请问是什么配置? 另外,对于处理用户拒绝授权的情况官方的处理建议是什么? 比如在指定时间内仅判断code不存在即可认定用户授权失败?
我们的情况是将微信(作为IdP)与AAD B2C(Azure Active Directory B2C)集成(这个是微信和微软Azure都彼此支持的场景), 流程与直接连接微信服务器有些不同, 但无论是基于Azure B2C还是直连微信,在上述场景中(用户拒绝授权), 微信服务器端的返回行为应该都是一样的.
英文版:
中文版:
非常感谢!
