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,6 +307,7 @@ func (c *ApiController) GetCaptcha() {
return
}
if captchaProvider != nil {
if captchaProvider.Type == "Default" {
id, img := object.GetCaptcha()
c.ResponseOk(Captcha{Type: captchaProvider.Type, CaptchaId: id, CaptchaImage: img})
@ -315,5 +316,7 @@ func (c *ApiController) GetCaptcha() {
c.ResponseOk(Captcha{Type: captchaProvider.Type, ClientId: captchaProvider.ClientId, ClientSecret: captchaProvider.ClientSecret})
return
}
}
c.ResponseOk(Captcha{Type: "none"})
}

View File

@ -54,17 +54,14 @@ func (c *ApiController) SendVerificationCode() {
return
}
provider := captcha.GetCaptchaProvider(checkType)
if provider == nil {
c.ResponseError("Invalid captcha provider.")
return
}
captchaProvider := captcha.GetCaptchaProvider(checkType)
if captchaProvider != nil {
if checkKey == "" {
c.ResponseError("Missing parameter: checkKey.")
return
}
isHuman, err := provider.VerifyCaptcha(checkKey, checkId)
isHuman, err := captchaProvider.VerifyCaptcha(checkKey, checkId)
if err != nil {
c.ResponseError("Failed to verify captcha: %v", err)
return
@ -74,6 +71,7 @@ func (c *ApiController) SendVerificationCode() {
c.ResponseError("Turing test failed.")
return
}
}
user := c.getCurrentUser()
organization := object.GetOrganization(orgId)

View File

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