跳到主要内容

JS SDK 版本迁移指南

v3 到 v4 迁移​

v4 的 PostgreSQL、云存储、云函数、实时推送等模块与 v3 PG 文档中的用法一致。身份认证改为默认的 GoTrue 客户端(app.auth()),主要变化:

  • 登录标识是邮箱或手机号,密码登录不再接受 username
  • signUp / signInWithOtp 不再返回 data.verifyOtp 回调。注册或发码成功后,调用 verifyOtp 完成校验
  • auth.detectSessionInUrl 默认开启,回跳后自动恢复会话。不需要时设为 false。默认流程是 implicit,会话写在回调 URL 的 hash 中。PKCE 设置 auth.flowType: 'pkce'。自动检测开启时,不必调用 exchangeCodeForSession
  • 修改密码使用 updateUser,不再提供 resetPasswordForOld
  • signInWithCustomTicket 改为传入 { ticket }。v3 传入的是返回票据的函数
  • createTicket 用法与 v3 相同。私钥仍放在 init 顶层的 credentials 里,字段为 private_key、private_key_id、env_id,仅 Node.js 端可用
  • signInWithOpenId 改为传入 code 与 appId。wx.login 由调用方执行。云开发免登录可以不传 code。不再接受 useWxCloud
  • signInWithPhoneAuth 改为传入 phoneCode 与 appId。不再从 wx.getAccountInfoSync 读取 AppID,也不再接受 useWxCloud
  • 不再提供 toDefaultLoginPage、refreshUser、deleteUser,以及 Node.js 端的 getUserInfo / getEndUserInfo / queryUserInfo / getClientIP
  • 新增 signInWithSSO、exchangeCodeForSession

接口说明见 身份认证。

已废弃、默认不挂载的模块​

下面三个模块已废弃。安装 @cloudbase/js-sdk 时不会装上对应的包。要兼容旧调用,请单独安装,再引入注册函数,然后 init。app.database()、app.mysql()、app.rdb() 仍随主包提供。

模块调用安装引入
文档型实时监听collection.watch()@cloudbase/realtimeregisterRealtime
数据模型app.models@cloudbase/modelregisterModel
HTTP APIapp.apis@cloudbase/apisregisterApis
npm install @cloudbase/realtime @cloudbase/model @cloudbase/apis -S
import cloudbase from "@cloudbase/js-sdk";
import { registerRealtime } from "@cloudbase/realtime";
import { registerModel } from "@cloudbase/model";
import { registerApis } from "@cloudbase/apis";

registerRealtime(cloudbase);
registerModel(cloudbase);
registerApis(cloudbase);

collection.watch() 来自 @cloudbase/realtime。app.realtime() 来自主包里的 registerRealtimeJs。初始化页见 已废弃、默认不挂载的模块。

v2 到 v3 迁移​

v3 版本在代码使用上完全兼容 v2 版本,可以平滑迁移,但有以下变化需注意:

  • 身份认证、云函数、云存储 请求域名变为:{env}.api.tcloudbasegateway.com,与 HTTP API 对齐

  • PG 云存储使用 PostgreSQL Bucket,使用方式请参考 云存储

  • v3 优化了 身份认证 模块,带来更加方便的 api 调用操作,推荐使用新的方法,用法请参考 身份认证

  • 云函数、云存储 域名变化会涉及前置开放 API 权限校验,请到 云开发平台/身份认证/权限控制 中进行角色关联,详细说明请参考策略管理

    与登录认证的关系

v1 到 v2 迁移​

登录认证​

从 v1 到 v2,登录认证模块有以下变化:

  • 登录状态持久化:登录状态只支持 local 模式
  • v2 版本不再支持监听用户登录状态改变
  • v2 版本不再支持公众号登录方式,如需使用该方式,请用 v1 版本
  • 用户字段信息精简化,详见 User
  • 对账户关联使用方式进行了调整,并且不再支持关联自定义登录,详见“登录认证 v2 |账户关联”
  • 对登录的使用方式进行了调整,详见“登录认证 v2 |登录认证”

接口调整​

Auth​

更新​
  • 接口命名 typo 修正:不再使用 Auth.getCurrenUser(),请使用 Auth.getUser()
新增​
废弃​
  • Auth.anonymousAuthProvider
  • Auth.customAuthProvider
  • Auth.forceResetPwdByPhoneCode
  • Auth.getAuthHeader
  • Auth.getAuthHeaderAsync
  • Auth.onAccessTokenRefreshed
  • Auth.onAnonymousConverted
  • Auth.onLoginStateExpired
  • Auth.onLoginTypeChanged
  • Auth.sendPasswordResetEmail
  • Auth.sendPhoneCode
  • Auth.shouldRefreshAccessToken
  • Auth.signInWithEmailAndPassword
  • Auth.signInWithPhoneCodeOrPassword
  • Auth.signInWithUsernameAndPassword
  • Auth.signUpWithEmailAndPassword
  • Auth.signUpWithPhoneCode
  • Auth.weixinAuthProvider

LoginState​

废弃​
  • LoginState.isAnonymousAuth
  • LoginState.isCustomAuth
  • LoginState.isUsernameAuth
  • LoginState.isWeixinAuth
  • LoginState.loginType

User​

废弃​
  • User.avatarUrl
  • User.linkWithPhoneNumber
  • User.nickName
  • User.updateEmail
  • User.updatePassword
  • User.updatePhoneNumber
  • User.updateUsername