user.set("authData", authData).save({useMasterKey:true}).then(
不使用{useMasterKey:true} 会报没有权限,
使用{useMasterKey:true} 会报Error: The user cannot be altered by a client without the session.
最根本的需求是这样的: 云引擎需要支持微信公众号,多个小程序,所以需要unionid,但是小程序sdk自带一键登录缺陷:1.只能固定一个微信小程序,authData内固定一个lcweapp,不能支持同一个用户使用多个微信小程序一键登录,2.没有unionid,获取uniondid需要wx.login的code,但是这个code已经被一键登录用过了,所以使用hook来更新uniondid也行不通。
希望官方能优化一键登录流程,这样我们就能省很多事。
一键登录sdk优化建议:
1. 增加参数1: wxappName参数,对应不同小程序,体现在authData里面。
2.增加参数2: isGetUserInfo,如果为true,在登录之前先取得用户信息,iv,encryptedData,code,一并提交,服务器 此时就能解析到unionId(用户即使只使用了1个小程序,没有关注公众号也能有unionId)
3一键登录逻辑:因为getUserInfo需要授权,检查用户之前是否拒绝过,如果被拒绝过,需要在sdk中调用wx.openSetting ,让用户重新授权。
4,云端:User表: 增加wxUnionId字段(客户端不可见),增加hasUnionId字段(客户端可见,代表用户是否授权获得uniondid),authData中不要固定为lc_weapp,
这样既能兼容单个微信app的,又能扩展支持具有多个公众号+多个小程序的unionId模式。真正做到一键登录,现在真的很头疼。。。。。
@leeyeh