邮箱验证相关接口 
验证码使用说明 
验证码发送总共有 4 个时机:
- 使用邮箱注册前发送,用于邮箱注册接口校验验证码
 - 使用邮箱验证码登陆前发送,用于邮箱验证码登陆接口校验验证码
 - 登陆后发送,用于激活账号
 - 重置密码发送,邮箱验证码用于重置密码
 
1、3 个时机一般选择一个在 console 打开配置开关使用。
发送验证码,用于注册或者直接登陆 
POST /bp/user/send_email_verify_code 
请求头部参数 (Headers): 
- X-BytePower-Sign:请求体签名
 
请求体 
content-type: "application/json"
描述:验证邮箱,发送验证码
参数类型
名字 类型 示例 是否必填 描述 email string XXX true 用户注册的邮箱 platform string XXXX true 平台信息(website、ios、android) type string XXXX true 发送的邮件用途,(login_email、sign_up_email) 请求体示例:
{
  "email": "XXX@ihandysoft.com",
  "type": "login_email",
  "platform": "website"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type
- 400 invalid_parameter(参数错误)
 - 400 backend unavailable(服务错误,由于邮件发送等服务不正常导致)
 - 417 config_invalid (console 配置问题)
 - 429 api_rate_limit (邮件频率限制)
 
邮箱登录 
POST /bp/user/login 
请求头部参数 (Headers): 
- X-BytePower-Sign:请求体签名
 
请求体 
content-type: "application/json"
描述:邮箱登录
参数类型
名字 类型 示例 是否必填 描述 email_password json true,email_password 和 email_code 二选一 邮箱密码登陆,email_code 二选一 email_code json true,email_password 和 email_code 二选一 邮箱验证码登陆,email_password 二选一 email string "XXX@ihandysoft.com" true 邮箱地址 password string "abcdef" email_password 情况下 true 即必填 登录密码 verify_code string "595831" email_code 情况下 true 即必填 邮箱验证码 cuid string "XXX" false 设备唯一标识 simple_cuid string "test_simple_cuid" false 客户端快速产生的简易 cuid cuid_v2 string "test_custom_uid_v2" false 新的 SDK 生成的 cuid imei string "test_imei" false 国际移动设备识别码(IMEI) oaid string "test_oaid" false Open Anonymous Device Identifier,匿名设备标识符 请求体示例:
{
  //邮箱密码登陆,需要先注册
  "email_password": {
    "email": "XXX@ihandysoft.com",
    "password": "abcdef"
  },
  //或者邮箱验证码登陆,无需注册,未注册会直接创建账号
  "email_code": {
    "email": "testbp666@gmail.com",
    "verify_code": "595831"
  },
  ... // ids 信息
}ids 信息,见login
响应 
HTTP 状态码:200
描述:成功 响应示例: 无
{
  "user": {
    "create_time": 1706579657842,
    "cuid": "test_custom_uid",
    "email": {
      "email_address": "XXXX",
      "verified": false
    },
    "is_new_user": false,
    "name": "",
    "phone": {
      "phone_number": ""
    },
    "session": {
      "session_token": "STEF2LA3GTC7DQ26XA"
    },
    "social_accounts": [],
    "uid": "UUEF2JQSDSHMP"
  }
}HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 417 config_invalid (console 配置问题)
 - 400 account.code_empty (验证码为空)
 - 400 account.code_out_of_date (验证码不存在)
 - 400 account.code_invalid (验证码错误,一般是由于邮箱校验失败导致)
 
注册后验证邮箱 
GET /bp/user/email/verify?verify_code=XXXX&email=XXX 
默认邮件模版中,这个地址包含在给用户发送的验证邮件中,用户点击此链接,直接调用此接口验证账号。 自定义邮件内容,取决于用户配置的邮箱内容。 验证后是否跳转取决于 console 的跳转链接配置
请求头部参数 (Headers): 
无
请求体 
- 参数类型
名字 类型 示例 是否必填 描述 verify_code string XXX true 邮箱对应的验证码 email string XXX false 可选参数,传递了会校验验证码对应的邮箱  
响应 
HTTP 状态码:200
描述:验证成功 响应示例:
{}- HTTP 状态码:301
 
Console 配置了跳转链接: 跳转到相应链接地址
- HTTP 状态码:4xx 描述:错误 响应示例:
 
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 400 backend unavailable(服务错误,由于邮件发送等服务不正常导致)
 - 417 config_invalid (console 配置问题)
 - 429 api_rate_limit (邮件频率限制)
 - 400 account.code_empty (验证码为空)
 - 400 account.code_out_of_date (验证码不存在)
 - 400 account.code_invalid (验证码错误,一般是由于邮箱校验失败导致)
 
登陆后查询邮箱验证状态 
GET /bp/user/me/email/verify_result 
请求头部参数 (Headers): 
- X-BytePower-Session-Token:登录后获取用户的 session
 - X-BytePower-Sign:请求体签名
 
请求体 
无
响应 
HTTP 状态码:200
描述:成功 响应示例: 无
{
  "verify_result": {
    "verified": true,
    "verified_time": "time RFC3339"
  }
}HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 417 config_invalid (console 配置问题)
 
再次发送注册后验证邮件 
POST /bp/user/me/email/send_verify_code 
如果验证链接过期,用户在登录状态,可触发再次发送验证邮件。
请求头部参数 (Headers): 
- X-BytePower-Session-Token:登录后获取用户的 session
 - X-BytePower-Sign:请求体签名
 
请求体 
content-type: "application/json"
描述:发送验证邮件
参数类型
名字 类型 示例 是否必填 描述 platform string XXXX true 平台信息(website、ios、android) 请求体示例:
{
  "platform": "website"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 400 backend unavailable(服务错误,由于邮件发送等服务不正常导致)
 - 417 config_invalid (console 配置问题)
 - 429 api_rate_limit (邮件频率限制)
 
忘记邮箱密码 
POST /bp/user/email/forgot_password 
发送验证邮件到用户邮箱. 默认模版用户点击链接,验证后,跳转到重置密码页面。 自定义邮件由用户 Console 配置决定
请求头部参数 (Headers): 
无
请求体 
content-type: "application/json"
描述:发送验证码
参数类型
名字 类型 示例 是否必填 描述 email string XXX true 用户注册的邮箱 platform string XXXX true 平台信息(website、ios、android) 请求体示例:
{
  "email": "XXX@xxxx.com",
  "platform": "website"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 400 backend unavailable(服务错误,由于邮件发送等服务不正常导致)
 - 417 config_invalid (console 配置问题)
 - 429 api_rate_limit (邮件频率限制)
 
重置账号密码(通过邮箱) 
POST /bp/user/email/reset_password 
未登录的情况下,使用验证码验证身份,修改密码。
请求头部参数 (Headers): 
无
请求体 
content-type: "application/json"
描述:重置密码
参数类型
名字 类型 示例 是否必填 描述 random_code string XXX true 来自邮件的参数 CODE password string XXXX true 新密码 email string XXXX false 用户邮箱,传递此参数将验证 CODE 与邮箱的关联关系 请求体示例:
{
  "random_code": "123456",
  "password": "abcdef",
  "email": "XXX@xx.com"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 417 config_invalid (console 配置问题)
 - 400 account.code_empty (验证码为空)
 - 400 account.code_out_of_date (验证码不存在)
 - 400 account.code_invalid (验证码错误,一般是由于邮箱校验失败导致)
 
修改密码 
PUT /bp/user/me/password 
用户在登录的状态下,修改密码。
请求头部参数 (Headers): 
- X-BytePower-Session-Token:登录后获取用户的 session
 - X-BytePower-Sign:请求体签名
 
请求体 
content-type: "application/json"
描述:修改密码
参数类型
名字 类型 示例 是否必填 描述 origin_password string XXX true 旧密码 password string XXXX true 新密码 请求体示例:
{
  "origin_password": "123456",
  "password": "abcdef"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type
- 400 invalid_parameter(参数错误)
 - 417 config_invalid (console 配置问题)
 
绑定邮箱 
POST /bp/user/me/email 
请求头部参数 (Headers): 
- X-BytePower-Session-Token:登录后获取用户的 session
 - X-BytePower-Sign:请求体签名
 
请求体 
content-type: "application/json"
描述:绑定邮箱
参数类型
名字 类型 示例 是否必填 描述 email string XXX true 用户注册的邮箱 platform string XXXX true 平台信息(website、ios、android) verify_code string XXXX 打开了邮箱验证登陆开关后 true 即必填 验证码 请求体示例:
{
  "email": "XXX@ihandysoft.com",
  "verify_code": "331464",
  "platform": "website"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 400 account.email_already_exists
 - 400 account.code_empty (验证码为空)
 - 400 account.code_out_of_date (验证码不存在)
 - 400 account.code_invalid (验证码错误,一般是由于邮箱校验失败导致)
 
解绑邮箱 
DELETE /bp/user/me/email 
请求头部参数 (Headers): 
- X-BytePower-Session-Token:登录后获取用户的 session
 - X-BytePower-Sign:请求体签名
 
请求体 
无
响应 
HTTP 状态码:200
描述:成功 响应示例: 无
- HTTP 状态码:4xx 描述:错误 响应示例:
 
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 400 account.email_not_found (用户邮箱不存在)
 - 400 account.sp_link_may_cause_ghost (用户最后一个有效登录,无法解绑)
 
更换邮箱 
PUT /bp/user/me/email 
请求头部参数 (Headers): 
- X-BytePower-Session-Token:登录后获取用户的 session
 - X-BytePower-Sign:请求体签名
 
请求体 
content-type: "application/json"
描述:更换绑定邮箱
参数类型
名字 类型 示例 是否必填 描述 email string XXX true 用户注册的邮箱 platform string XXXX true 平台信息(website、ios、android) 请求体示例:
{
  "email": "XXX@ihandysoft.com",
  "platform": "website"
}响应 
HTTP 状态码:200
描述:成功 响应示例: 无
HTTP 状态码:4xx 描述:错误 响应示例:
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}http_code、error_type:
- 400 invalid_parameter(参数错误)
 - 400 account.email_not_found (用户邮箱不存在)
 
