微信小程序 unionid 登录解决方案第三方登录模块的引入,使得开发者能快速构建自己的用户系统,这是LeanCloud广受欢迎的功能之一。
随着第三方平台的不断发展,尤其是微信小程序的兴起,LeanCloud第三方登录模块也在不断进化。
在最新发布的JavaScript SDK v3.13版本中,微信小程序unionid登录功能得到了支持。
根据不同的需求,LeanCloud提供了多套解决方案。
一键登录使用LeanCloud用户系统实现微信用户身份一键登录,首先需要在微信公众平台上获取AppID与AppSecret,然后在LeanCloud控制台组件中的“社交”部分保存“微信小程序”的AppID与AppSecret。
调用()方法即可实现登录。
登录时,LeanCloud会将用户的小程序openid与session_key等信息保存在_weapp属性中,用户信息在控制台的_users表中可以查看。
对于首次使用此应用的用户,登录API会创建新用户,而已经登录过此应用的用户,再次调用登录API会返回相同的用户。
登录状态保存在客户端,可以通过()方法获取当前登录用户,开发者还可以使用masterKey在云引擎中获取用户openid与session_key进行支付、推送等操作,详细示例请参考支付文档。
小程序登录态存在有效期,失效后可通过调用()重新登录。
使用unionid微信开放平台通过unionid区分用户唯一性,同一平台下的应用,unionid相同而openid不同。
若需实现多个小程序或小程序与使用微信开放平台登录的应用之间共享用户系统,则应采用unionid登录。
在小程序中获取unionid有多种途径,接入LeanCloud用户系统的方式会根据不同方式有所变化。
一键登录时,LeanCloud会静默获取unionid并匹配登录,用户authData中会增加_weixin_unionid项。
通过unionid+openid登录时,系统会按照特定步骤匹配用户,最终用户的authData会呈特定结构。
以LeanTodo Demo为例,关注其关联公众号后,登录后在设置用户页面会显示当前用户authData已绑定unionid。
获取unionid后登录开发者可通过解密获取unionid,然后调用()实现登录。
若希望更灵活地控制登录流程,开发者可在服务端自行获取unionid与openid,然后调用通用的第三方unionid登录接口。
loginWithAuthDataAndUnionId接口更加底层,不依赖小程序运行环境,提供了更高的灵活性。
关联第二个小程序使用这种方式登录的常见场景是关联同一个开发者帐号下的第二个小程序。
默认情况下,一个LeanCloud应用关联一个微信小程序(对应平台名称lc_weapp)。
若想接入第二个小程序,需自行获取unionid与openid,并将其作为新的第三方平台登录。
以weapp2为例,需使用方法。
与关联内置的小程序平台(lc_weapp)有所不同。
获取unionid后关联现有用户已有登录用户,通过某种方式获取其unionid(如支付操作后服务端获取unionid),可在小程序中使用#associateWithWeappWithUnionId()实现关联。
启用其他登录方式登录API对接了小程序用户系统,因此创建的用户无法在小程序之外的平台登录。
若需使用LeanCloud用户系统提供的其他登录方式,如手机号验证码登录、邮箱密码登录等,在小程序登录后设置对应属性即可。
验证手机号码功能需在控制台设置中启用「用户注册时,向注册手机号码发送验证短信」。
绑定现有用户应用已使用LeanCloud用户系统或用户通过其他方式注册,可通过调用#associateWithWeapp()在小程序中关联现有账户。
详细内容请查看《在微信小程序与小游戏中使用LeanCloud》文档。
以上就是本文相关内容,如果您对本站感兴趣可收藏本站:快创小站