diff --git a/utils/captcha/captcha.go b/utils/captcha/captcha.go index 62adc81d..14c6c3b3 100644 --- a/utils/captcha/captcha.go +++ b/utils/captcha/captcha.go @@ -132,15 +132,6 @@ func (c *Captcha) Handler(ctx *context.Context) { key := c.key(id) - if v, ok := c.store.Get(key).([]byte); ok { - chars = v - } else { - ctx.Output.SetStatus(404) - ctx.WriteString("captcha not found") - return - } - - // reload captcha if len(ctx.Input.Query("reload")) > 0 { chars = c.genRandChars() if err := c.store.Put(key, chars, c.Expiration); err != nil { @@ -149,6 +140,14 @@ func (c *Captcha) Handler(ctx *context.Context) { beego.Error("Reload Create Captcha Error:", err) return } + } else { + if v, ok := c.store.Get(key).([]byte); ok { + chars = v + } else { + ctx.Output.SetStatus(404) + ctx.WriteString("captcha not found") + return + } } img := NewImage(chars, c.StdWidth, c.StdHeight)