Add support mCaptcha as captcha provider (#20458)
https://mcaptcha.org/ Co-authored-by: Felipe Leopoldo Sologuren Gutiérrez <fsologureng@users.noreply.github.com>
This commit is contained in:
parent
452272c038
commit
58de07e5fd
20 changed files with 183 additions and 6 deletions
27
modules/mcaptcha/mcaptcha.go
Normal file
27
modules/mcaptcha/mcaptcha.go
Normal file
|
@ -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
|
||||
}
|
|
@ -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)
|
||||
|
|
|
@ -59,6 +59,7 @@ const (
|
|||
ImageCaptcha = "image"
|
||||
ReCaptcha = "recaptcha"
|
||||
HCaptcha = "hcaptcha"
|
||||
MCaptcha = "mcaptcha"
|
||||
)
|
||||
|
||||
// settings
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue