shop-back-end/doc/汇邦数字身份平台登录接口文档.md

5.1 KiB
Raw Blame History

请求概述

请求header

所有请求必须包含以下两个header

  • noSign: true
  • source: api 获取登录token后也可以在header中添加
  • token: ${token}

登录校验结果

接口返回结果为json格式如果包含code字段,则说明登录校验失败。

  • code: 0001 - 登录状态已失效
  • code: 0002 - 在cookie、Get参数、Header中均未检测到token

登录接口

2.1 获取token

  • API: https://www.ab98.cn/api/doInterface?code=doGetToken&from=jt&app=${appname}
  • 请求方式: GET
  • 请求参数:
    • code: doGetToken (必传)
    • from: jt (可选)
    • app: 调用该接口的应用在汇邦数字平台登记的应用英文名 (可选) 成功返回:
{
    "outputData": {
        "token": "1a6ea39e84c406283839856640e3aa66",
        "takeFace": true
    },
    "state": "ok"
}

失败返回:

{
    "outputData": "错误信息",
    "stateCode": 0,
    "state": "fail"
}

2.2 短信登录

2.2.1 发送短信

  • API: https://www.ab98.cn/api/doInterface?code=doSendSms
  • 请求方式: POST
  • Content-Type: application/json
  • 请求BODY:
{
    "token":"358900e1005c33a1dd059b07042ceec3", //必传
    "tel":"137xxxxxxxx", //必传
    "nobind":"true",      //必传
    "for_login":"true",    //必传
    "from":"jt"         //必传
}

成功返回:

{
    "outputData": {
        "success": true
    },
    "state": "ok"
}

失败返回:

{
    "outputData": {
        "success": false,
        "errMsg": "失败原因"
    },
    "state": "ok"
}

2.2.2 验证短信验证码

  • API: https://www.ab98.cn/api/doInterface?code=doCheckSmsCode
  • 请求方式: POST
  • Content-Type: application/json
  • 请求BODY:
{
    "token":"358900e1005c33a1dd059b07042ceec3",
    "tel":"137xxxxxxxx",
    "vcode":"123456"
}

成功返回:

{
    "outputData": {
        "idcard_back": "https://www.ab98.cn/upload/temp/images/202102/xxx.jpeg",
        "face_img": "https://www.ab98.cn/upload/temp/images/202102/yyy.jpeg",
        "address": "身份证上的地址",
        "nation": null,
        "success": true,
        "sex": "男",
        "name": "xxx",
        "userid": 123,
        "registered": true,
        "tel": "137xxxxxxxx",
        "idnum": "450981xxxxxxxxxxxx",
        "idcard_front": "https://www.ab98.cn/upload/temp/images/202102/zzz.jpeg"
    },
    "state": "ok"
}

失败返回:

{
    "outputData": {
        "success": false
    },
    "state": "ok"
}

2.3 微信扫码登录

  • API: https://www.ab98.cn/online/index.html?content=doLogin%60

2.3.1 二维码

假设获取到的token为358900e1005c33a1dd059b07042ceec3,则构造的最终链接为: https://www.ab98.cn/online/index.html?content=doLogin%60358900e1005c33a1dd059b07042ceec3 使用该链接生成二维码图片供用户使用微信“扫一扫”。

2.3.2 监听websocket

  • 监听地址: wss://www.ab98.cn/login.ws/${token}
  • 登录失败:
{
"outputData": "登录失败原因",
"state": "fail"
}
  • 登录成功:
{
"outputData": "登录成功",
"state": "ok",
"username": "扫码者姓名",
"sex": "扫码者性别",
"head_img": "扫码者头像",
"idnum": "身份证号码",
"userid": "人员记录ID",
"tel": "手机号码"
}

2.4 刷脸登录

  • API: https://www.ab98.cn/api/doInterface?code=doStrongFaceLogin
  • 请求方式: POST
  • Content-Type: application/json
  • 请求BODY:
{
"token":"358900e1005c33a1dd059b07042ceec3", //必传
"check_code":"1234", //必传
"imgBase64":"/9j/4AAQS…" //必传
}

成功返回:

{
"state": "ok",
"outputData": "登录成功",
"openid": "oGfFD1jBEZ2sq4PhOc8zKKejHA9E",
"head_img": "https://www.ab98.cn/… ",
"sex": "男",
"userid": 1,
"token": "dbe11ef64cd6350c5d935d531db765c0",
"username": "xxx",
"tel": "xxx"
}

2.5 动态码登录

  1. 发起websocket监听: wss://www.ab98.cn/login.ws/{监听token} 其中 {监听token} 由客户端自定义,由数字和英文字母组成,保证多用户同时监听时 {监听token} 互不相同即可,否则会接收到错误消息。
  2. 主动发送消息:
{
"type": "mfa",
"do": "checkCode",
"token": "xxx",
"code": "000000"
}

服务器响应消息:

  1. 登录失败:
{
"state": "fail",
"msg": "失败原因"
}
  1. 动态码校验通过,等待移动端授权登录:
{
"state": "ok",
"step": "0"
}
  1. 等待移动端授权超时:
{
"state": "ok",
"step": "1"
}
  1. 移动端已授权登录:
{
"state": "ok",
"step": "2",
"openid": "xxx",
"head_img": "/xxx",
"sex": "男/女",
"company": "xxx",
"userid": 123,
"idnum": "xxx",
"username": "xxx",
"tel": "xxx"
}

2.6 退出登录

  • API: https://www.ab98.cn/api/doInterface?code=doLogout
  • 请求方式: POST
  • Content-Type: application/json
  • 请求BODY:
{
"token":"358900e1005c33a1dd059b07042ceec3"
}

成功返回:

{
"state": "ok"
}