身份认证API

1 业务概述

2 需求分析

文件服务是我们抽取出来的专门用于处理文件上传、下载的微服务,可以为金融P2P项目的各个业务模块提供文件服务。百度AI是一个第三方开发平台,能够提供各种智能技术,例如:语音识别,图像识别,文字识别等等。

在这里插入图片描述

第一阶段:识别身份证(图中1.1-1.5)

  1. 前端携带身份证图片信息请求用户中心
  2. 用户中心请求百度AI平台进行识别
  3. 返回识别结果给前端

第二阶段:获取上传凭证(图中2.1-2.4)

  1. 前端请求用户中心获取上传授权
  2. 用户中心生成上传授权并返回

第三阶段:上传身份证(图中3.1-3.2)

  1. 前端携带上传凭证和照片请求文件服务,文件服务保存照片到七牛云上
  2. 返回上传结果给前端

第四阶段:保存身份证信息(图中3.3-3.5)

  1. 前端请求用户中心保存身份证信息
  2. 用户中心保存身份证照片标识等
  3. 返回前端保存成功

3 部署文件服务

3.1 服务部署

参考“文件服务部署指南.”

3.2 接口说明

farming项目作为独立的文件服务,已经实现了文件上传和下载,我们直接使用即可。要了解相关接口,可以访问:http://localhost:56082/farming/swagger-ui.html,也可以直接查看项目源码。

4 使用百度AI服务

4.1 注册并登录百度AI

访问https://login.bce.baidu.com,自行注册并登录(可以尝试短信验证码快捷登录)

4.2 相关设置

  1. 选择文字识别服务

在这里插入图片描述

  1. 创建应用

在这里插入图片描述

  1. 填写应用名称和类型,提交请求

在这里插入图片描述

  1. 获取AppID, API Key和Secret Key

在这里插入图片描述

4.3 使用百度AI

  1. 在用户中心(consumer-service)的pom文件中引入百度AI:
<!--百度AI-->
<dependency>
   <groupId>com.baidu.aip</groupId>
   <artifactId>java-sdk</artifactId>
   <version>4.8.0</version>
</dependency>
  1. 登录Apollo,找到consumer-service项目, 在micro_service.files中增加如下配置:

在这里插入图片描述

5 接口定义

5.1 第一阶段:识别身份证

用户中心请求百度AI识别身份证,在用户中心定义识别身份证照片接口:

1、接口描述如下

1)前端提交身份证照片到用户中心

2)用户中心请求百度AI进行身份证识别

3)百度AI返回识别结果给用户中心

4)用户中心响应前端返回识别结果

2、接口定义如下

在ConsumerApi接口中,定义imageRecognition方法:

/**
 * 提交身份证图片给百度AI进行识别
 * @param file 被上传的文件
 * @param flag 身份证正反面  取值front 或 back
 * @return Map集合 识别成功后把身份证上的姓名和身份证号存到map中返回
 */
RestResponse<Map<String, String>> imageRecognition(MultipartFile file, String flag);

在ConsumerController类中实现该方法:

@Override
@ApiOperation("提交身份证图片给百度AI进行识别")
@PostMapping("/my/imageRecognition")
public RestResponse<Map<String,String>> imageRecognition(
    										@RequestParam("file")MultipartFile file,
                                            String flag) {
    return null;
}

功能实现:请参考百度AI官方文档:https://ai.baidu.com/docs#/OCR-Java-SDK/top

5.2 第二阶段:获取上传凭证

要想通过文件服务上传文件,必须获得上传凭证。在用户中心定义获取上传凭证接口:

1、接口描述如下

1)向文件服务请求获取上传凭证

2)响应前端返回凭证

2、接口定义如下

在ConsumerApi接口中,定义applyUploadCertificate方法:

/**
 * 申请获得上传凭证
 * @return
 */
RestResponse<String> applyUploadCertificate();

在ConsumerController类中实现该方法:

@Override
@ApiOperation("申请获得上传凭证")
@GetMapping("/my/applyUploadCertificate")
public RestResponse<String> applyUploadCertificate(){
    return null;
}

功能实现:请参考文件服务farming中的TokenController,需要通过RestTemplate或OkHttpClient往这里发请求。

5.3 第三阶段:上传身份证

前端携带之前获得的上传凭证,请求文件服务上传身份证照片,由于上传功能已经在文件服务中实现,所以这里只需要对前端做出调整(开启身份认证界面)即可:找到资料文件夹中的borrow.vue文件,然后用它把前端工程中的该文件替换掉。

5.4 第四阶段:保存身份证信息

文件上传成功后,前端会接收到文件服务返回的结果和文件标识,然后前端携带这些数据请求用户中心保存身份证信息。

在用户中心定义保存身份证信息接口:

1、接口描述

1)接受前端提交的身份证信息

2)用户中心校验身份证信息是否和之前开户信息一致

3)用户中心保存身份证照片标识

4)返回结果给前端

2、接口定义

在ConsumerApi接口中,定义saveConsumerDetails方法:

/**
 * 保存用户详细信息(主要存储身份证文件标识)
 * @param consumerDetailsDTO 封装用户详情信息
 * @return
 */
RestResponse<String> saveConsumerDetails(ConsumerDetailsDTO consumerDetailsDTO);

在ConsumerController类中实现该方法:

@Override
@ApiOperation(value="保存用户详细信息", notes="主要存储身份证文件标识")
@ApiImplicitParams({
        @ApiImplicitParam(name = "consumerDetailsDTO", value = "用户详细信息", dataType = "ConsumerDetailsDTO", paramType = "body")})
@PostMapping("/my/saveConsumerDetails")
public RestResponse<String> saveConsumerDetails(@RequestBody ConsumerDetailsDTO consumerDetailsDTO){
    //... ...
    return RestResponse.success("保存成功");
}

该阶段涉及到新的类有:ConsumerDetailsDTO、ConsumerDetails、ConsumerDetailsService、ConsumerDetailsServiceImpl、ConsumerDetailsM

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是二次元穿越来的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值