diff options
author | Gusted <williamzijl7@hotmail.com> | 2022-08-10 13:20:10 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-10 15:20:10 +0200 |
commit | 58de07e5fd14c23dd4c4a315b8c5b3fb3219f66a (patch) | |
tree | cec2e02c494e19a42bc6095c480d93354259b669 /modules | |
parent | 452272c0384d7033ffde18bcb1167e8e49ff598c (diff) | |
download | gitea-58de07e5fd14c23dd4c4a315b8c5b3fb3219f66a.tar.gz gitea-58de07e5fd14c23dd4c4a315b8c5b3fb3219f66a.zip |
Add support mCaptcha as captcha provider (#20458)
https://mcaptcha.org/
Co-authored-by: Felipe Leopoldo Sologuren GutiƩrrez <fsologureng@users.noreply.github.com>
Diffstat (limited to 'modules')
-rw-r--r-- | modules/mcaptcha/mcaptcha.go | 27 | ||||
-rw-r--r-- | modules/setting/service.go | 6 | ||||
-rw-r--r-- | modules/setting/setting.go | 1 |
3 files changed, 34 insertions, 0 deletions
diff --git a/modules/mcaptcha/mcaptcha.go b/modules/mcaptcha/mcaptcha.go new file mode 100644 index 0000000000..b889cf423b --- /dev/null +++ b/modules/mcaptcha/mcaptcha.go @@ -0,0 +1,27 @@ +// Copyright 2022 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package mcaptcha + +import ( + "context" + "fmt" + + "code.gitea.io/gitea/modules/setting" + + "codeberg.org/gusted/mcaptcha" +) + +func Verify(ctx context.Context, token string) (bool, error) { + valid, err := mcaptcha.Verify(ctx, &mcaptcha.VerifyOpts{ + InstanceURL: setting.Service.McaptchaURL, + Sitekey: setting.Service.McaptchaSitekey, + Secret: setting.Service.McaptchaSecret, + Token: token, + }) + if err != nil { + return false, fmt.Errorf("wasn't able to verify mCaptcha: %v", err) + } + return valid, nil +} diff --git a/modules/setting/service.go b/modules/setting/service.go index bd97e10b0f..af8a72cc6d 100644 --- a/modules/setting/service.go +++ b/modules/setting/service.go @@ -47,6 +47,9 @@ var Service = struct { RecaptchaURL string HcaptchaSecret string HcaptchaSitekey string + McaptchaSecret string + McaptchaSitekey string + McaptchaURL string DefaultKeepEmailPrivate bool DefaultAllowCreateOrganization bool DefaultUserIsRestricted bool @@ -133,6 +136,9 @@ func newService() { Service.RecaptchaURL = sec.Key("RECAPTCHA_URL").MustString("https://www.google.com/recaptcha/") Service.HcaptchaSecret = sec.Key("HCAPTCHA_SECRET").MustString("") Service.HcaptchaSitekey = sec.Key("HCAPTCHA_SITEKEY").MustString("") + Service.McaptchaURL = sec.Key("MCAPTCHA_URL").MustString("https://demo.mcaptcha.org/") + Service.McaptchaSecret = sec.Key("MCAPTCHA_SECRET").MustString("") + Service.McaptchaSitekey = sec.Key("MCAPTCHA_SITEKEY").MustString("") Service.DefaultKeepEmailPrivate = sec.Key("DEFAULT_KEEP_EMAIL_PRIVATE").MustBool() Service.DefaultAllowCreateOrganization = sec.Key("DEFAULT_ALLOW_CREATE_ORGANIZATION").MustBool(true) Service.DefaultUserIsRestricted = sec.Key("DEFAULT_USER_IS_RESTRICTED").MustBool(false) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 465dc75cad..0af743dd97 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -59,6 +59,7 @@ const ( ImageCaptcha = "image" ReCaptcha = "recaptcha" HCaptcha = "hcaptcha" + MCaptcha = "mcaptcha" ) // settings |