Skip to content

邮箱验证相关接口

验证码使用说明

验证码发送总共有 4 个时机:

  1. 使用邮箱注册前发送,用于邮箱注册接口校验验证码
  2. 使用邮箱验证码登陆前发送,用于邮箱验证码登陆接口校验验证码
  3. 登陆后发送,用于激活账号
  4. 重置密码发送,邮箱验证码用于重置密码

1、2、3 个时机一般选择一个在 console 打开配置开关使用。

发送验证码,用于注册或者直接登陆

POST /bp/user/send_email_verify_code

请求头部参数 (Headers):

参考接入 BytePower

  • X-BytePower-Sign:请求体签名

请求体

  • content-type: "application/json"

  • 描述:验证邮箱,发送验证码

  • 参数类型

    名字类型示例是否必填描述
    emailstringXXXtrue用户注册的邮箱
    platformstringXXXXtrue平台信息(website、ios、android)
    typestringXXXXtrue发送的邮件用途,(login_email、sign_up_email)
  • 请求体示例:

json
{
  "email": "XXX@ihandysoft.com",
  "type": "login_email",
  "platform": "website"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "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):

参考接入 BytePower

  • X-BytePower-Sign:请求体签名

请求体

  • content-type: "application/json"

  • 描述:邮箱登录

  • 参数类型

    名字类型示例是否必填描述
    email_passwordjsontrue,email_password 和 email_code 二选一邮箱密码登陆,email_code 二选一
    email_codejsontrue,email_password 和 email_code 二选一邮箱验证码登陆,email_password 二选一
    emailstring"XXX@ihandysoft.com"true邮箱地址
    passwordstring"abcdef"email_password 情况下 true 即必填登录密码
    verify_codestring"595831"email_code 情况下 true 即必填邮箱验证码
    cuidstring"XXX"false设备唯一标识
    simple_cuidstring"test_simple_cuid"false客户端快速产生的简易 cuid
    cuid_v2string"test_custom_uid_v2"false新的 SDK 生成的 cuid
    imeistring"test_imei"false国际移动设备识别码(IMEI)
    oaidstring"test_oaid"falseOpen Anonymous Device Identifier,匿名设备标识符
  • 请求体示例:

js
{
  //邮箱密码登陆,需要先注册
  "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 描述:错误 响应示例:

json
{
  "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_codestringXXXtrue邮箱对应的验证码
    emailstringXXXfalse可选参数,传递了会校验验证码对应的邮箱

响应

  • HTTP 状态码:200

    描述:验证成功 响应示例:

json
{}
  • HTTP 状态码:301

Console 配置了跳转链接: 跳转到相应链接地址

  • HTTP 状态码:4xx 描述:错误 响应示例:
json
{
  "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):

参考接入 BytePower

  • X-BytePower-Session-Token:登录后获取用户的 session
  • X-BytePower-Sign:请求体签名

请求体

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

json
{
  "verify_result": {
    "verified": true,
    "verified_time": "time RFC3339"
  }
}

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}

http_code、error_type:

  • 417 config_invalid (console 配置问题)

再次发送注册后验证邮件

POST /bp/user/me/email/send_verify_code

如果验证链接过期,用户在登录状态,可触发再次发送验证邮件。

请求头部参数 (Headers):

参考接入 BytePower

  • X-BytePower-Session-Token:登录后获取用户的 session
  • X-BytePower-Sign:请求体签名

请求体

  • content-type: "application/json"

  • 描述:发送验证邮件

  • 参数类型

    名字类型示例是否必填描述
    platformstringXXXXtrue平台信息(website、ios、android)
  • 请求体示例:

json
{
  "platform": "website"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "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"

  • 描述:发送验证码

  • 参数类型

    名字类型示例是否必填描述
    emailstringXXXtrue用户注册的邮箱
    platformstringXXXXtrue平台信息(website、ios、android)
  • 请求体示例:

json
{
  "email": "XXX@xxxx.com",
  "platform": "website"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "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_codestringXXXtrue来自邮件的参数 CODE
    passwordstringXXXXtrue新密码
    emailstringXXXXfalse用户邮箱,传递此参数将验证 CODE 与邮箱的关联关系
  • 请求体示例:

json
{
  "random_code": "123456",
  "password": "abcdef",
  "email": "XXX@xx.com"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "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):

参考接入 BytePower

  • X-BytePower-Session-Token:登录后获取用户的 session
  • X-BytePower-Sign:请求体签名

请求体

  • content-type: "application/json"

  • 描述:修改密码

  • 参数类型

    名字类型示例是否必填描述
    origin_passwordstringXXXtrue旧密码
    passwordstringXXXXtrue新密码
  • 请求体示例:

json
{
  "origin_password": "123456",
  "password": "abcdef"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}

http_code、error_type

  • 400 invalid_parameter(参数错误)
  • 417 config_invalid (console 配置问题)

绑定邮箱

POST /bp/user/me/email

请求头部参数 (Headers):

参考接入 BytePower

  • X-BytePower-Session-Token:登录后获取用户的 session
  • X-BytePower-Sign:请求体签名

请求体

  • content-type: "application/json"

  • 描述:绑定邮箱

  • 参数类型

    名字类型示例是否必填描述
    emailstringXXXtrue用户注册的邮箱
    platformstringXXXXtrue平台信息(website、ios、android)
    verify_codestringXXXX打开了邮箱验证登陆开关后 true 即必填验证码
  • 请求体示例:

json
{
  "email": "XXX@ihandysoft.com",
  "verify_code": "331464",
  "platform": "website"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "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):

参考接入 BytePower

  • X-BytePower-Session-Token:登录后获取用户的 session
  • X-BytePower-Sign:请求体签名

请求体

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

  • HTTP 状态码:4xx 描述:错误 响应示例:
json
{
  "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):

参考接入 BytePower

  • X-BytePower-Session-Token:登录后获取用户的 session
  • X-BytePower-Sign:请求体签名

请求体

  • content-type: "application/json"

  • 描述:更换绑定邮箱

  • 参数类型

    名字类型示例是否必填描述
    emailstringXXXtrue用户注册的邮箱
    platformstringXXXXtrue平台信息(website、ios、android)
  • 请求体示例:

json
{
  "email": "XXX@ihandysoft.com",
  "platform": "website"
}

响应

  • HTTP 状态码:200

    描述:成功 响应示例: 无

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}

http_code、error_type:

  • 400 invalid_parameter(参数错误)
  • 400 account.email_not_found (用户邮箱不存在)

京ICP备19011570号-2