Next.js是一个基于React的轻量级框架,用于构建服务器渲染的React应用程序。它提供了一种简单而强大的方式来创建具有优化性能和SEO友好的应用程序。
要在联系人表单中实现react-google-recaptcha,可以按照以下步骤进行操作:
react-google-recaptcha
库。可以使用以下命令进行安装:npm install react-google-recaptcha
react-google-recaptcha
库和相关的React组件:import ReCAPTCHA from "react-google-recaptcha";
<form>
{/* 其他表单字段 */}
<ReCAPTCHA sitekey="YOUR_SITE_KEY" />
<button type="submit">提交</button>
</form>
确保将YOUR_SITE_KEY
替换为你在Google reCAPTCHA网站上获得的Site Key。
next-connect
库来简化API路由的创建。在API路由中,验证reCAPTCHA的响应是否有效:import nextConnect from "next-connect";
import axios from "axios";
const handler = nextConnect();
handler.post(async (req, res) => {
const { recaptchaResponse } = req.body;
// 验证reCAPTCHA响应
const verificationUrl = `https://www.google.com/recaptcha/api/siteverify?secret=YOUR_SECRET_KEY&response=${recaptchaResponse}`;
const response = await axios.post(verificationUrl);
if (response.data.success) {
// reCAPTCHA验证通过,处理表单提交逻辑
// ...
res.status(200).json({ success: true });
} else {
// reCAPTCHA验证失败
res.status(400).json({ success: false, message: "reCAPTCHA验证失败" });
}
});
export default handler;
确保将YOUR_SECRET_KEY
替换为你在Google reCAPTCHA网站上获得的Secret Key。
fetch
或axios
等库来发送表单数据和reCAPTCHA响应到API路由:import { useState } from "react";
import axios from "axios";
const ContactForm = () => {
const [recaptchaResponse, setRecaptchaResponse] = useState("");
const handleSubmit = async (e) => {
e.preventDefault();
// 发送表单数据和reCAPTCHA响应到API路由
const response = await axios.post("/api/contact", { recaptchaResponse });
if (response.data.success) {
// 表单提交成功
// ...
} else {
// 表单提交失败
// ...
}
};
return (
<form onSubmit={handleSubmit}>
{/* 其他表单字段 */}
<ReCAPTCHA sitekey="YOUR_SITE_KEY" onChange={setRecaptchaResponse} />
<button type="submit">提交</button>
</form>
);
};
export default ContactForm;
这样,你就可以在Next.js的联系人表单中实现react-google-recaptcha了。
领取专属 10元无门槛券
手把手带您无忧上云