@cloudbase/auth 2.24.0 → 2.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SbaseApi.md CHANGED
@@ -105,7 +105,7 @@ async function registerUser(email, password, nickname, verificationCode) {
105
105
  console.log('验证码已发送,等待验证...')
106
106
 
107
107
  // 第二步:验证验证码并完成注册
108
- const { data: loginData, error: loginError } = await data.verify(verificationCode)
108
+ const { data: loginData, error: loginError } = await data.verifyOtp({ token: verificationCode })
109
109
 
110
110
  if (loginError) {
111
111
  console.error('验证失败:', loginError.message)
@@ -310,7 +310,7 @@ class PhoneLoginPage {
310
310
  this.hideError()
311
311
 
312
312
  try {
313
- const { data, error } = await this.verifyFunction(code)
313
+ const { data, error } = await this.verifyFunction({ token: code })
314
314
 
315
315
  if (error) {
316
316
  this.handleVerifyError(error)
@@ -332,7 +332,7 @@ class PhoneLoginPage {
332
332
 
333
333
  // 处理发送验证码成功
334
334
  handleSendCodeSuccess(data) {
335
- this.verifyFunction = data.verify
335
+ this.verifyFunction = data.verifyOtp
336
336
 
337
337
  // 显示验证码输入区域
338
338
  document.getElementById('verificationSection').style.display = 'block'
@@ -485,7 +485,7 @@ class SecurePhoneLogin {
485
485
  throw new Error('验证码格式错误,请输入6位数字')
486
486
  }
487
487
 
488
- const { data, error } = await verifyFunction(code)
488
+ const { data, error } = await verifyFunction({ token: code })
489
489
 
490
490
  if (error) {
491
491
  throw error
@@ -699,7 +699,7 @@ Promise<SignUpRes>
699
699
 
700
700
  | 字段名 | 类型 | 描述 |
701
701
  |-------|------|------|
702
- | data.verify | function | 验证码回调函数,支持messageId参数 |
702
+ | data.verifyOtp | function | 验证码回调函数,参数为 `{ token: string, messageId?: string }` |
703
703
  | error | AuthError \| null | 错误信息,成功时为null |
704
704
 
705
705
  **返回值定义**
@@ -707,7 +707,7 @@ Promise<SignUpRes>
707
707
  ```typescript
708
708
  interface SignUpRes {
709
709
  data: {
710
- verify: (code: string, messageId?: string) => Promise<SignInRes>
710
+ verifyOtp: (params: { token: string, messageId?: string }) => Promise<SignInRes>
711
711
  }
712
712
  error: AuthError | null
713
713
  }
@@ -735,7 +735,7 @@ if (error) {
735
735
  const verificationCode = '123456' // 用户输入的验证码
736
736
 
737
737
  // 第三步:智能验证流程(自动判断用户存在性)
738
- const { data: loginData, error: loginError } = await data.verify(verificationCode)
738
+ const { data: loginData, error: loginError } = await data.verifyOtp({ token: verificationCode })
739
739
 
740
740
  if (loginError) {
741
741
  console.error('验证失败:', loginError.message)
@@ -767,7 +767,7 @@ if (error) {
767
767
  const verificationCode = '123456' // 用户输入的验证码
768
768
 
769
769
  // 第三步:智能验证流程(自动判断用户存在性)
770
- const { data: loginData, error: loginError } = await data.verify(verificationCode)
770
+ const { data: loginData, error: loginError } = await data.verifyOtp({ token: verificationCode })
771
771
 
772
772
  if (loginError) {
773
773
  console.error('操作失败:', loginError.message)
@@ -801,7 +801,7 @@ async function startRegistration(email, password, nickname) {
801
801
  return false
802
802
  } else {
803
803
  console.log('验证码已发送')
804
- signUpVerify = data.verify
804
+ signUpVerify = data.verifyOtp
805
805
 
806
806
  // 显示验证码输入框
807
807
  document.getElementById('verificationSection').style.display = 'block'
@@ -820,7 +820,7 @@ async function completeRegistration(verificationCode) {
820
820
  return false
821
821
  }
822
822
 
823
- const { data, error } = await signUpVerify(verificationCode)
823
+ const { data, error } = await signUpVerify({ token: verificationCode })
824
824
 
825
825
  if (error) {
826
826
  console.error('验证失败:', error.message)
@@ -1274,7 +1274,7 @@ Promise<SignInWithOtpRes>
1274
1274
 
1275
1275
  | 字段名 | 类型 | 描述 |
1276
1276
  |-------|------|------|
1277
- | data.verify | function | 验证码回调函数,支持messageId参数 |
1277
+ | data.verifyOtp | function | 验证码回调函数,参数为 `{ token: string, messageId?: string }` |
1278
1278
  | error | AuthError \| null | 错误信息,成功时为null |
1279
1279
 
1280
1280
  **返回值定义**
@@ -1282,7 +1282,7 @@ Promise<SignInWithOtpRes>
1282
1282
  ```typescript
1283
1283
  interface SignInWithOtpRes {
1284
1284
  data: {
1285
- verify: (code: string, messageId?: string) => Promise<SignInRes>
1285
+ verifyOtp: (params: { token: string, messageId?: string }) => Promise<SignInRes>
1286
1286
  }
1287
1287
  error: AuthError | null
1288
1288
  }
@@ -1312,7 +1312,7 @@ if (error) {
1312
1312
  console.log('验证码已发送,等待用户输入...')
1313
1313
 
1314
1314
  // 用户输入验证码后验证
1315
- const { data: loginData, error: loginError } = await data.verify('123456')
1315
+ const { data: loginData, error: loginError } = await data.verifyOtp({ token: '123456' })
1316
1316
 
1317
1317
  if (loginError) {
1318
1318
  console.error('验证失败:', loginError.message)
@@ -1337,7 +1337,7 @@ if (error) {
1337
1337
  console.log('邮箱验证码已发送,请查收邮件...')
1338
1338
 
1339
1339
  // 用户从邮箱获取验证码后验证
1340
- const { data: loginData, error: loginError } = await data.verify('654321')
1340
+ const { data: loginData, error: loginError } = await data.verifyOtp({ token: '654321' })
1341
1341
 
1342
1342
  if (loginError) {
1343
1343
  console.error('验证失败:', loginError.message)
@@ -1388,7 +1388,7 @@ try {
1388
1388
  }
1389
1389
 
1390
1390
  // 验证验证码
1391
- const { data: loginData, error: loginError } = await data.verify('123456')
1391
+ const { data: loginData, error: loginError } = await data.verifyOtp({ token: '123456' })
1392
1392
 
1393
1393
  if (loginError) {
1394
1394
  console.error('验证失败:', loginError.message)
@@ -2923,11 +2923,12 @@ if (refreshedData) {
2923
2923
  更新当前登录用户的信息。
2924
2924
 
2925
2925
  - 不支持更新密码,更新密码请使用 [resetPasswordForEmail](#resetpasswordforemail) 或 [reauthenticate](#reauthenticate)
2926
+ - **更新邮箱或手机号时**,需要先发送验证码,然后通过返回的 `verifyOtp` 回调进行验证
2926
2927
 
2927
2928
  **方法签名**
2928
2929
 
2929
2930
  ```typescript
2930
- async updateUser(params: UpdateUserReq): Promise<GetUserRes>
2931
+ async updateUser(params: UpdateUserReq): Promise<GetUserRes | UpdateUserWithVerificationRes>
2931
2932
  ```
2932
2933
 
2933
2934
  **描述**
@@ -2935,14 +2936,15 @@ async updateUser(params: UpdateUserReq): Promise<GetUserRes>
2935
2936
  - 更新当前登录用户的基本信息和元数据
2936
2937
  - 支持更新邮箱、手机号、用户名、昵称、头像等
2937
2938
  - 需要用户已登录状态才能更新信息
2938
- - 更新成功后返回更新后的用户信息
2939
+ - **更新邮箱或手机号时**:返回 `verifyOtp` 回调函数,需要用户输入验证码后调用该回调完成验证
2940
+ - **更新其他字段时**:直接返回更新后的用户信息
2939
2941
 
2940
2942
  **参数**
2941
2943
 
2942
2944
  | 参数名 | 类型 | 必选 | 描述 |
2943
2945
  |-------|------|------|------|
2944
- | email | string | 可选 | 邮箱地址 |
2945
- | phone | string | 可选 | 手机号码 |
2946
+ | email | string | 可选 | 邮箱地址(需要验证码验证) |
2947
+ | phone | string | 可选 | 手机号码(需要验证码验证) |
2946
2948
  | username | string | 可选 | 用户名称,长度 5-24 位,支持中英文、数字、特殊字符(仅支持_-),不支持中文 |
2947
2949
  | description | string | 可选 | 用户描述信息 |
2948
2950
  | avatar_url | string | 可选 | 头像URL地址 |
@@ -2952,11 +2954,22 @@ async updateUser(params: UpdateUserReq): Promise<GetUserRes>
2952
2954
  **返回类型**
2953
2955
 
2954
2956
  ```typescript
2955
- Promise<GetUserRes>
2957
+ Promise<GetUserRes | UpdateUserWithVerificationRes>
2956
2958
  ```
2957
2959
 
2958
2960
  **返回值**
2959
2961
 
2962
+ 当更新邮箱或手机号时:
2963
+
2964
+ | 字段名 | 类型 | 描述 |
2965
+ |-------|------|------|
2966
+ | data.user | User | 当前用户信息(验证前) |
2967
+ | data.messageId | string | 验证码消息ID |
2968
+ | data.verifyOtp | function | 验证码回调函数,参数为 `{ email?: string, phone?: string, token: string }` |
2969
+ | error | AuthError \| null | 错误信息,成功时为null |
2970
+
2971
+ 当更新其他字段时:
2972
+
2960
2973
  | 字段名 | 类型 | 描述 |
2961
2974
  |-------|------|------|
2962
2975
  | data.user | User | 更新后的用户详细信息 |
@@ -2965,6 +2978,7 @@ Promise<GetUserRes>
2965
2978
  **返回值定义**
2966
2979
 
2967
2980
  ```typescript
2981
+ // 更新其他字段时的返回值
2968
2982
  interface GetUserRes {
2969
2983
  data: {
2970
2984
  user?: User
@@ -2972,6 +2986,16 @@ interface GetUserRes {
2972
2986
  error: AuthError | null
2973
2987
  }
2974
2988
 
2989
+ // 更新邮箱或手机号时的返回值
2990
+ interface UpdateUserWithVerificationRes {
2991
+ data: {
2992
+ user?: User
2993
+ messageId?: string
2994
+ verifyOtp?: (params: { email?: string, phone?: string, token: string }) => Promise<GetUserRes>
2995
+ }
2996
+ error: AuthError | null
2997
+ }
2998
+
2975
2999
  interface User {
2976
3000
  id: any
2977
3001
  aud: string
@@ -3012,25 +3036,82 @@ interface AuthError extends Error {
3012
3036
 
3013
3037
  **示例**
3014
3038
 
3015
- **示例 1:更新基本用户信息**
3039
+ **示例 1:更新基本用户信息(无需验证码)**
3016
3040
 
3017
3041
  ```typescript
3018
3042
  const { data, error } = await auth.updateUser({
3019
- email: 'newemail@example.com',
3020
3043
  nickname: '新昵称',
3021
3044
  gender: 'MALE',
3045
+ avatar_url: 'https://example.com/avatar.jpg',
3022
3046
  })
3023
3047
 
3024
3048
  if (error) {
3025
3049
  console.error('更新用户信息失败:', error.message)
3026
3050
  } else {
3027
3051
  console.log('用户信息已更新:', data.user)
3028
- console.log('新邮箱:', data.user?.email)
3029
3052
  console.log('新昵称:', data.user?.user_metadata?.nickName)
3030
3053
  }
3031
3054
  ```
3032
3055
 
3033
- **示例 2:更新头像和描述**
3056
+ **示例 2:更新邮箱(需要验证码验证)**
3057
+
3058
+ ```typescript
3059
+ // 第一步:发起邮箱更新,系统会发送验证码到新邮箱
3060
+ const { data, error } = await auth.updateUser({
3061
+ email: 'newemail@example.com',
3062
+ })
3063
+
3064
+ if (error) {
3065
+ console.error('发送验证码失败:', error.message)
3066
+ } else {
3067
+ console.log('验证码已发送到新邮箱,等待用户输入...')
3068
+
3069
+ // 第二步:用户输入验证码后,调用 verifyOtp 回调完成验证
3070
+ const verificationCode = '123456' // 用户输入的验证码
3071
+
3072
+ const { data: verifyData, error: verifyError } = await data.verifyOtp({
3073
+ email: 'newemail@example.com',
3074
+ token: verificationCode,
3075
+ })
3076
+
3077
+ if (verifyError) {
3078
+ console.error('验证失败:', verifyError.message)
3079
+ } else {
3080
+ console.log('邮箱更新成功:', verifyData.user?.email)
3081
+ }
3082
+ }
3083
+ ```
3084
+
3085
+ **示例 3:更新手机号(需要验证码验证)**
3086
+
3087
+ ```typescript
3088
+ // 第一步:发起手机号更新,系统会发送验证码到新手机号
3089
+ const { data, error } = await auth.updateUser({
3090
+ phone: '13800138001',
3091
+ })
3092
+
3093
+ if (error) {
3094
+ console.error('发送验证码失败:', error.message)
3095
+ } else {
3096
+ console.log('验证码已发送到新手机号,等待用户输入...')
3097
+
3098
+ // 第二步:用户输入验证码后,调用 verifyOtp 回调完成验证
3099
+ const verificationCode = '123456' // 用户输入的验证码
3100
+
3101
+ const { data: verifyData, error: verifyError } = await data.verifyOtp({
3102
+ phone: '13800138001',
3103
+ token: verificationCode,
3104
+ })
3105
+
3106
+ if (verifyError) {
3107
+ console.error('验证失败:', verifyError.message)
3108
+ } else {
3109
+ console.log('手机号更新成功:', verifyData.user?.phone)
3110
+ }
3111
+ }
3112
+ ```
3113
+
3114
+ **示例 4:更新头像和描述**
3034
3115
 
3035
3116
  ```typescript
3036
3117
  const { data, error } = await auth.updateUser({
@@ -3051,7 +3132,7 @@ if (error) {
3051
3132
  }
3052
3133
  ```
3053
3134
 
3054
- **示例 3:用户资料编辑页面**
3135
+ **示例 5:用户资料编辑页面**
3055
3136
 
3056
3137
  ```typescript
3057
3138
  async function saveUserProfile(formData) {
@@ -3088,7 +3169,7 @@ document.getElementById('profileForm').addEventListener('submit', async (e) => {
3088
3169
  })
3089
3170
  ```
3090
3171
 
3091
- **示例 4:错误处理**
3172
+ **示例 6:错误处理**
3092
3173
 
3093
3174
  ```typescript
3094
3175
  try {
@@ -4897,7 +4978,7 @@ interface AuthError extends Error {
4897
4978
  const { data, error } = await auth.signInWithOtp({ phone: '13800138000' })
4898
4979
 
4899
4980
  // 验证码校验回调
4900
- let signUpVerify = data.verify
4981
+ let signUpVerify = data.verifyOtp
4901
4982
 
4902
4983
  // 重新发送验证码,获取新的messageId
4903
4984
  const { data: resendData, error: resendError } = await auth.resend({
@@ -4916,7 +4997,7 @@ if (resendError) {
4916
4997
  const messageId = resendData.messageId // 新的messageId
4917
4998
 
4918
4999
  // 使用新的messageId进行验证
4919
- const { data: loginData, error: loginError } = await signUpVerify(verificationCode, messageId)
5000
+ const { data: loginData, error: loginError } = await signUpVerify({ token: verificationCode, messageId })
4920
5001
 
4921
5002
  if (loginError) {
4922
5003
  console.error('验证失败:', loginError.message)
@@ -5749,7 +5830,7 @@ interface ResendRes {
5749
5830
  // OTP登录响应参数
5750
5831
  interface SignInWithOtpRes {
5751
5832
  data: {
5752
- verify?: (code: string, messageId?: string) => Promise<SignInRes> // 验证码回调函数,支持messageId参数
5833
+ verifyOtp?: (params: { token: string, messageId?: string }) => Promise<SignInRes> // 验证码回调函数
5753
5834
  }
5754
5835
  error: AuthError | null // 错误信息,成功时为null
5755
5836
  }
@@ -5757,7 +5838,17 @@ interface SignInWithOtpRes {
5757
5838
  // 用户注册响应参数
5758
5839
  interface SignUpRes {
5759
5840
  data: {
5760
- verify?: (code: string, messageId?: string) => Promise<SignInRes> // 验证码回调函数,支持messageId参数
5841
+ verifyOtp?: (params: { token: string, messageId?: string }) => Promise<SignInRes> // 验证码回调函数
5842
+ }
5843
+ error: AuthError | null
5844
+ }
5845
+
5846
+ // 用户信息更新响应参数(当更新邮箱或手机号时)
5847
+ interface UpdateUserWithVerificationRes {
5848
+ data: {
5849
+ user?: User // 当前用户信息
5850
+ messageId?: string // 验证码消息ID
5851
+ verifyOtp?: (params: { email?: string, phone?: string, token: string }) => Promise<GetUserRes> // 验证码回调函数
5761
5852
  }
5762
5853
  error: AuthError | null
5763
5854
  }