Skip to content

Conversation

@Jiiiiiin
Copy link

@Jiiiiiin Jiiiiiin commented Sep 5, 2019

将设置验证码属性方法放开了,设置自定义验证码,使用方来确保验证码的随机性,比如,使用方有一个需要需要根据用户的账号或者手机号随机几位来生成验证码,就可以通过该方法设置验证码,来实现该需求。

我们这边就有这样的需求,麻烦大佬考虑一下。

@Jiiiiiin
Copy link
Author

Jiiiiiin commented Sep 5, 2019

目前的临时解决方案,反射,但是不够好,如果有这个需求的朋友可以参考:

/**
   * TODO https://github.com/whvcse/EasyCaptcha/pull/12 等待合并,将自定义数据设置到验证码生成器中
   */
  @Deprecated
  private void _setCode2ImageCodeCaptcha(ImageCode imageCode, String capText) {
    val captcha = imageCode.getCaptcha();
    try {
      val chars = captcha.getClass().getSuperclass().getDeclaredField("chars");
      chars.setAccessible(true);
      // TODO 需要手动添加随机功能,根据 imageCode的长度来进行随机
      chars.set(captcha, capText);
      captcha.setLen(capText.length());
    } catch (NoSuchFieldException | IllegalAccessException e) {
      log.error("反射设置验证码出错", e);
    }
  }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant