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

在前后端端分离的项目中图片验证码怎么获取,以及怎么验证
获取验证码其实不难,关键是后端怎么验证此验证码?
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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值