feat: fix stuck error when no captcha provider found (#808)

This commit is contained in:
Resulte Lee
2022-06-21 12:22:46 +08:00
committed by GitHub
parent 2e42511bc4
commit 2c57bece39
3 changed files with 27 additions and 26 deletions

View File

@ -307,13 +307,16 @@ func (c *ApiController) GetCaptcha() {
return return
} }
if captchaProvider.Type == "Default" { if captchaProvider != nil {
id, img := object.GetCaptcha() if captchaProvider.Type == "Default" {
c.ResponseOk(Captcha{Type: captchaProvider.Type, CaptchaId: id, CaptchaImage: img}) id, img := object.GetCaptcha()
return c.ResponseOk(Captcha{Type: captchaProvider.Type, CaptchaId: id, CaptchaImage: img})
} else if captchaProvider.Type != "" { return
c.ResponseOk(Captcha{Type: captchaProvider.Type, ClientId: captchaProvider.ClientId, ClientSecret: captchaProvider.ClientSecret}) } else if captchaProvider.Type != "" {
return c.ResponseOk(Captcha{Type: captchaProvider.Type, ClientId: captchaProvider.ClientId, ClientSecret: captchaProvider.ClientSecret})
return
}
} }
c.ResponseOk(Captcha{Type: "none"}) c.ResponseOk(Captcha{Type: "none"})
} }

View File

@ -54,25 +54,23 @@ func (c *ApiController) SendVerificationCode() {
return return
} }
provider := captcha.GetCaptchaProvider(checkType) captchaProvider := captcha.GetCaptchaProvider(checkType)
if provider == nil {
c.ResponseError("Invalid captcha provider.")
return
}
if checkKey == "" { if captchaProvider != nil {
c.ResponseError("Missing parameter: checkKey.") if checkKey == "" {
return c.ResponseError("Missing parameter: checkKey.")
} return
isHuman, err := provider.VerifyCaptcha(checkKey, checkId) }
if err != nil { isHuman, err := captchaProvider.VerifyCaptcha(checkKey, checkId)
c.ResponseError("Failed to verify captcha: %v", err) if err != nil {
return c.ResponseError("Failed to verify captcha: %v", err)
} return
}
if !isHuman {
c.ResponseError("Turing test failed.") if !isHuman {
return c.ResponseError("Turing test failed.")
return
}
} }
user := c.getCurrentUser() user := c.getCurrentUser()

View File

@ -257,5 +257,5 @@ func GetCaptchaProviderByApplication(applicationId, isCurrentProvider string) (*
return GetCaptchaProviderByOwnerName(fmt.Sprintf("%s/%s", provider.Provider.Owner, provider.Provider.Name)) return GetCaptchaProviderByOwnerName(fmt.Sprintf("%s/%s", provider.Provider.Owner, provider.Provider.Name))
} }
} }
return nil, fmt.Errorf("no captcha provider found") return nil, nil
} }