mirror of https://github.com/go-gitea/gitea
Add support mCaptcha as captcha provider (#20458)
https://mcaptcha.org/ Co-authored-by: Felipe Leopoldo Sologuren Gutiérrez <fsologureng@users.noreply.github.com>pull/20741/head
parent
452272c038
commit
58de07e5fd
@ -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 |
||||
} |
@ -0,0 +1,16 @@ |
||||
export async function initMcaptcha() { |
||||
const mCaptchaEl = document.querySelector('.m-captcha'); |
||||
if (!mCaptchaEl) return; |
||||
|
||||
const {default: mCaptcha} = await import(/* webpackChunkName: "mcaptcha-vanilla-glue" */'@mcaptcha/vanilla-glue'); |
||||
mCaptcha.INPUT_NAME = 'm-captcha-response'; |
||||
const siteKey = mCaptchaEl.getAttribute('data-sitekey'); |
||||
const instanceURL = mCaptchaEl.getAttribute('data-instance-url'); |
||||
|
||||
mCaptcha.default({ |
||||
siteKey: { |
||||
instanceUrl: new URL(instanceURL), |
||||
key: siteKey, |
||||
} |
||||
}); |
||||
} |
Loading…
Reference in new issue