邮箱验证相关接口
验证码使用说明
验证码发送总共有 4 个时机:
- 使用邮箱注册前发送,用于邮箱注册接口校验验证码
- 使用邮箱验证码登陆前发送,用于邮箱验证码登陆接口校验验证码
- 登陆后发送,用于激活账号
- 重置密码发送,邮箱验证码用于重置密码
1、2、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 (用户邮箱不存在)