验证码过滤器

对接口进行图片验证码验证。

支持功能:

  • 生成图片验证码
  • 验证图片验证码

拦截地址配置

配置后,对需要验证的地址进行验证拦截

  • enabled:是否启用拦截器,默认不启用false
  • urls:需要验证的接口地址
  • captcha-urls:生成验证码的接口地址
  • parameter-type:参数类型,header请求头,query查询参数,body查询参数
  • code-field-name:临时code的参数名称
  • value-field-name:验证码值的参数名称
  • expire: 过期时间,默认5分钟,可以配置秒,分钟,小时,天,例如:30m 30分钟,2h 2小时

url匹配规则:

  • 模糊匹配:可以通过/**/*模糊匹配所有地址和路径下地址
wueasy:
  gateway:
    interceptor:
      captcha:
        enabled: true #是否启用,默认false
        items:
        - captcha-urls: 
          - /demo/captcha
          urls: 
          - /demo/login
          code-field-name: code
          value-field-name: captcha
          parameter-type: body

特殊说明:需要注意接口登录权限的处理

示例说明:

  • 登录接口/demo/login需要图片验证码
  • 通过访问生成验证码接口http://127.0.0.1:8080/demo/login,接口返回临时code和图片验证码内容
  • 生成验证码返回数据

    {
      "errorNo":0,
      "data":
      {
          "code":"88e8d3552ed0d2b8467bc5e497614e69",
          "captcha":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAoCAIAAACTo5SwAAADMElEQVR42u3asWuVMRAA8PePufoHdFXpooh0VWihiwUnXVwc3tPBwUXU0oKCxUFQFBQnF4cHDoIIYhfdXwMH4cgll0tyyZev5rih330p79Ef+XLJ18WGjQ/fP9rcjOgyFrwfczmid0Iv2FAchCNaETJUQ3EQjhiEI84T4eHfZzYH4czaGcr230JqEt7eu+Sk1rdc7uziPLi+zdA6g00KP+XhjftOCoeFRgrj0ZOVk8KRylt76jcJobmVTUh5SqRLCEOKyYQb8QGb10+LkJKAk3dkbcI2fl7C0IBF+Z+4qp+XEKjoWljoFxVS92MIqWItwpBfbUKwwR0pM6xE8ZwTOmDtCaNjooRHRy9wMoQ1/CYm5P3qLYRahNbMKd7Z2qNU+PLe1q7JT8dPISv5OU6M7kLFr9kUxJVCP+ZDqSL2c+ZfiSKFaUTopWpPGL0MEfJ+MOe8itSvUDFKaLXUCBmnuRBG/RjFBoRJxWTC/ZsXbDpIO1cuQtZeCPnuRvIgLST0Ds4jlE84vtMREf45XQKbTVMxCXdfPj6xdVCsNwVDhMx4RUKvlu4UlLQ50jNS7Bfa/xlXPPOwonAuvv+9xtkPIW1qsBlOxV5mAkLq59SjfnwlRJJa1yXUiqaEofMXnjDVj9YlVBLyDEUzpsZGXkiYtOUXrYW2hcGPUO9TVJFQuJFP9ZMoTu6XdPyd0JFCC+M0Mt7tBNTrEcp7n+jRWqhYQnj45hhnHqH8JVTpMTduRyElfpK1sDZh6IxU+NaJ8YtW+iKETSF+hCb9LtORtiHMeF+R5Beqd0Ro5SBV1okvv97evXoNEjyef/4HWe538u6UZlU/elf4bxbCkcrvC8vxTGISo3hw+ZYdEFKUEHq1vLeSCJc/X9HkFfsiVAzAcwLM8C1mLvKTT2UMxfNOQS8kP02zo2tCq+XcylBUJ3SEvDySMYMwTVH4IB2ECmuhpXIqJYTydmYQ6kCaDFElEf5YfcWp+D3HWhiPckJqpqso70hV/F6vH0DOhtCrVeJXSTFja5/n5/25d0LHrNyvvaK6n1OZASHI8acz/RBuZMfcWoTfVut5EGbEhITqQf1s3RCeAa0b9swfeTD/AAAAAElFTkSuQmCC"
      }
    }
    
  • 登录接口http://127.0.0.1:8080/demo/login传入附加验证码参数

  • 登录接口传入数据
    {
      "accountNo":"admin",
      "password":"123456",
      "code":"88e8d3552ed0d2b8467bc5e497614e69", //验证码临时code
      "captcha":"4myn" //验证码值
    }
    

redis配置

由于一次请求有效是通过reids进行存储验证的,需要配置对应的验证码redis,配置必须为captcha

wueasy :
  data:
    redis: #redis配置
      captcha: #验证码配置
        database : 1 #数据库索引(默认为0)
        host : 127.0.0.1 #服务器地址
        port : 6379 #服务器连接端口
        password : 123456  #服务器连接密码(默认为空)
        pool : #连接池配置
          maxIdle : 8 # 连接池中的最大空闲连接,默认值也是8。
          minIdle : 0 #连接池中的最小空闲连接,默认值也是0。
          maxTotal : 2000 # 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
          maxWaitMillis : 1000 # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
        timeout : 3000 #连接超时时间(毫秒)
Copyright © wueasy.com 2017-2022 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2022-08-27

results matching ""

    No results matching ""