Skip to content

Latest commit

 

History

History
137 lines (104 loc) · 4.47 KB

File metadata and controls

137 lines (104 loc) · 4.47 KB

账号API使用流程

内容目录

点我 打开/关闭 目录列表

简介

基础Url:api/account/

下面没有介绍到的几个接口也可以根据文档中的思路进行类推,不再一一赘述

人机验证

极验

采用极验人机验证,参阅 极验技术文档

先调用 GetGeetestCode 接口获取极验初始化参数,再按照极验文档中的方法初始化人机验证,用户通过人机验证后会得到 Challenge,Validate,Seccode

用户身份识别

  • Cookie:本地地生成随机字符串并保存到LocalStorage
  • IP:调用API或通过其他方式获取用户真实IP,也可以填写内网IP,服务器会获取调用方IP

使用方法

  • 根据接口说明传递即可
  • 建议封装,方便调用

注册

  1. 调用人机验证
  2. 将电子邮箱,密码,等参数准备好,调用 Register 接口
  3. 若注册失败,可能原因如下
  • 没有通过人机验证
  • 用户名必须少于20字符
  • 此用户名已经被注册
  • 此电子邮箱已经被注册
  • 发送验证码的过程中发生错误
  1. 若注册成功,会发送验证邮件到用户电子邮箱中
  2. 可以调用 CheckVerificationCode 判断验证码是否存在,不等同验证码有效,可以初略判断
  3. 调用 ConfirmEmailRegister 接口进行验证
  4. 若成功则返回JWT令牌,可以根据用户设置判断是否保存在本地

登入

普通登入

  1. 调用人机验证
  2. 将账户,密码,等参数准备好,调用 Login 接口
  3. 若登入失败,可能原因如下
  • 没有通过人机验证
  • 用户名或密码错误
  • 你的电子邮件还没有进行验证
  • 该用户已经被封禁
  • 没有通过身份验证(绑定手机号或第三方实名平台,目前未开启)
  • 历史用户需要验证
  1. 若登入成功,则返回JWT令牌
  2. 如果是历史用户,已经向用户邮箱发送验证码
  3. 将验证码和新密码一起传递给 HistorUserChangePassword 成功后引导用户重新登入

刷新JWT令牌

调用 RefreshJWToken 接口

使用一次性身份代码登入

本方法用于跨域传递登入状态,有效时间1小时

  1. 在登入状态下调用 GetOneTimeCodeAsync 接口获取一次性代码
  2. 将一次性代码传递到新的网站或APP
  3. 新的网站调用 LoginByOneTimeCode 接口获取JWT令牌

设置请求头

项目采用JWT令牌作为安全验证方式,请参阅 什么是 JWT -- JSON WEB TOKEN

请求头里加入Authorization,并加上Bearer标注

fetch('api/user/1', {
  headers: {
    'Authorization': 'Bearer ' + token
  }
})

发送验证码

  1. 进行人机验证
  2. 确定发送类型:电子邮件、手机短信
  3. 确定发送目标:用户名、登录令牌、邮件或手机

称呼查找优先级:用户名 > 登录令牌 > 当前登入用户的邮件或手机 > 邮件或手机 目标地址优先级:邮件或手机 > 当前登入用户的邮件或手机

  1. 调用 PostVerificationCode 向用户发送验证码

二次身份验证

  1. 确保处于登入状态
  2. 调用 SecondAuthenticationAsync 接口产生验证码
  3. 进行人机验证
  4. 向用户发送验证码
  5. 调用 SecondAuthenticationAsync 验证身份
  6. 若成功,会返回一个令牌,有效时间1小时,作为参数传递给敏感操作的接口

修改密码

  1. 进行二次身份验证
  2. 将新密码传递给 ChangePasswordAsync 接口
  3. 若成功,请引导用户重新登入

修改电子邮件

  1. 进行二次身份验证
  2. 将新邮箱传递给 ChangeEmailBeforeAsync 产生验证码
  3. 向用户发送验证码
  4. 调用 ChangeEmailAfterAsync 验证

忘记密码

  1. 将用户输入的邮箱或手机号传递给 ForgetPasswordAsync
  2. 发送验证码
  3. 将验证码和新密码一起传递给 ConfirmForgetPassword