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/20742/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