登录加一个验证码

登录加一个验证码
用户627552352
2025年03月05日
|
浏览 156

要在登录页面添加验证码,可以使用多种方法来实现。以下是一个使用Python和Flask框架以及reCAPTCHA作为验证码服务的示例:

1. 安装必要的库

首先,确保你已经安装了Flask和reCAPTCHA的Python包:

复制代码
pip install Flask recaptcha-client

2. 配置reCAPTCHA

你需要在Google reCAPTCHA管理页面创建一个站点密钥对(site key和secret key)。然后,将这些密钥添加到你的Flask应用中。

3. 创建Flask应用

以下是一个简单的Flask应用示例,展示如何在登录页面添加reCAPTCHA验证码:

复制代码
from flask import Flask, request, render_template, redirect, url_for
from recaptcha_client import ReCaptchaResponse

app = Flask(__name__)

# 配置reCAPTCHA密钥
app.config['RECAPTCHA_SITE_KEY'] = '你的site key'
app.config['RECAPTCHA_SECRET_KEY'] = '你的secret key'

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/login', methods=['POST'])
def login():
    # 获取用户输入和reCAPTCHA响应
    user_input = request.form['username']
    recaptcha_response = request.form['g-recaptcha-response']
    
    # 验证reCAPTCHA响应
    if not validate_recaptcha(recaptcha_response):
        return redirect(url_for('index'))
    
    # 继续处理登录逻辑(例如数据库验证)
    # ...
    return "Login successful!"

def validate_recaptcha(recaptcha_response):
    if not recaptcha_response:
        return False
    response = ReCaptchaResponse(is_valid=False)
    params = {
        'secret': app.config['RECAPTCHA_SECRET_KEY'],
        'response': recaptcha_response,
        'remoteip': request.environ.get('REMOTE_ADDR')
    }
    # 使用reCAPTCHA API验证响应
    response = ReCaptchaResponse(**requests.post("https://www.google.com/recaptcha/api/siteverify", data=params).json())
    return response.is_valid

if __name__ == '__main__':
    app.run(debug=True)

4. HTML模板

创建一个简单的HTML模板文件 templates/index.html,用于显示登录表单和reCAPTCHA:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login with reCAPTCHA</title>
    <script src="https://www.google.com/recaptcha/api.js"></script>
</head>
<body>
    <form action="/login" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username"><br><br>
        <div class="g-recaptcha" data-sitekey="{{ app.config['RECAPTCHA_SITE_KEY'] }}"></div>
        <br/>
        <button type="submit">Login</button>
    </form>
</body>
</html>

5. 运行应用

确保你的Flask应用文件名为 app.py,然后运行:

复制代码
python app.py

现在,当你访问根URL时,会看到一个包含reCAPTCHA的登录表单。用户输入信息并完成验证码验证后,可以继续处理登录逻辑。

如有更多问题,请通过【🔍追问按钮】提交补充信息。

我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;