Closed jas0ncn closed 6 years ago
@jas0ncn 文档还未更新
@yuzifu 您说的是腾讯云官网的文档吗?
@yuzifu 已经更新了啊
由于微信的 wx.getUserInfo 不再弹窗授权,得修改为 button 弹窗获取用户信息。为此我们提供了一个新的 API:qcloud.requestLogin,此函数接受了 code, encryptedData, iv 以向后台提供用户信息,具体示例如下:
qcloud.requestLogin已经改回qcloud.login了,且对于用户来来,不需要自己提供code, encryptedData, iv参数。
@yuzifu 已经更新 README 链接到此,感谢提醒!
添加了button弹框授权之后,doLogin()方法没有反馈 util.showSuccess('登录成功')或者util.showModel('登录错误', err.message)信息啊,里面去打印session里面的内容也没有执行,这是为什么啥。
按官方的工具指引弄的DEMO竟然登陆失败,虽说是有登陆变更,但是这最简单的入门demo应该好好弄好啊。 如果腾讯对开发者能对产品一样用心,就好了。 这么大公司。
登录和获取用户信息的逻辑好像根本没有分开啊!login还是需要用户授权啊,能不能不用用户授权完成登录?我根本不需要用户的信息
@linrx1511 不需要用户授权的话登录的逻辑十分简单,没有比较实用 SDK 再次封装,直接调用 wx.login
接口即可~
@jas0ncn 不是很明白,那还要用wafer2吗,怎么维护登录态呢?
@linrx1511 这种场景不是很适合使用 wafer2 哈
demo的登录一直是错误的 改改哪里呢
这个上传图片的功能怎么报错了呢?
首先,感谢大家一直以来对 Wafer2 的支持,我们也都有关注 Github 上各位的 Issue,由于工作繁忙,有不及时回复之处尽请谅解!
本公告主要对微信前不久调整登录接口后,Wafer2 的更新进行说明。需要注意的是,微信的登录接口更新与腾讯云无关,登录接口反馈的相关问题请至微信开发者社区。
微信公告:https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=&docid=0000a26e1aca6012e896a517556c01
根据微信公告,
wx.getUserInfo
接口将不再弹窗,而改用<button>
。目前 Wafer2 的 Demo 已经切换,以下主要对 Wafer2 SDK 的实现进行说明。Wafer2 SDK 的授权登录模式改为:前端
<button>
弹出登录框,用户点击授权之后,SDK 调用wx.login
和wx.getUserInfo
获取用户信息,并解密,存储数据库。微信的
wx.getUserInfo
返回了包含加密信息的用户数据,我们需要使用session_key
进行解密,而session_key
需要使用wx.login
接口调用。由于使用<button>
点击事件中的userinfo
是在wx.login
获取的code
之前,后面获取的code
可能会导致解密失败。所以 SDK 内部统一重新调用wx.getUserInfo
重新获取了一次用户信息。(https://github.com/tencentyun/wafer2-client-sdk/blob/master/lib/login.js#L63)此次调整新增一个功能。考虑到用户可能此前登录过,实际上通过
openid
就能查询到用户,所以此次新增了一个loginWithCode
的接口,本接口内部只调用wx.login
获取了code
,后端 SDK 使用code
换取的openid
查询数据库得到用户信息,并更新登录态。调整之后,request
模块将全部更新使用loginWithCode
。除此以外,Demo 也删除了使用
wx.checkSession
判断登录态的方式,由于登录态是后端自行颁发,所以无法使用微信的接口判断登录态。注意 2.0 版本以上的 Client SDK 需配合 1.4.x 以上版本的 Node.js SDK 或者 2.2.x 以上版本的 PHP SDK。
此次调整给大家带来不便敬请谅解!关于登录模块调整的任何问题可以在下面留言。