前后端分离之---图片验证码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014087707/article/details/79248554

在前后端端分离的项目中图片验证码怎么获取,以及怎么验证

获取验证码其实不难,关键是后端怎么验证此验证码?
1. 后端生成图片验证码,把字节流发送到前端伪代码:
 @RequestMapping(value = "/picture", method =RequestMethod.GET)
    public ResponseEntity<byte[]> picture(@PathVariable String phoneNumber,  HttpServletResponse response) throws IOException {
    //生成验证码

    HttpHeaders headers = new HttpHeaders();
    headers.put("pictureId",UUID.randomUUID())//标注唯一性
    //字节流
    ByteArrayOutputStream baos = new ByteArrayOutputStream();//字节输出流
    //之前的方式直接写到输出流中
    //ImageIO.write(image, "JPEG", response.getOutputStream());
    //response.getOutputStream().flush();
    //现在返回字节数组
    ImageIO.write(image, "JPEG", baos);
    byte[] content = baos.toByteArray();
    return new ResponseEntity<byte[]>(content, null, HttpStatus.OK);
}
  1. 后端把pictureId 存到缓存中去,设置一个过期时间.
  2. 前端拿到数据显示,然后下次请求的时候把pictureId 带上,供后端验证

可选的方式

  1. 也可以返回base64的图片编码,前端直接显示.更通用些
  2. 前端生成pictureId 发送到后端,可能会产生相同的pictureId (几率很小)

参考:http://www.cnblogs.com/liminjun88/p/6556493.html

猜你喜欢

转载自blog.csdn.net/u014087707/article/details/79248554
今日推荐