个人博客系统 -- 登录页面添加图片验证码

目录

1. 功能展示

2. 前段代码

3. 后端代码


1. 功能展示

在登录页面添加验证码登录

1. 检测到没有输入验证码或者输入的验证码错误时,进行弹窗提示.并且刷新当前验证码图片

2. 点击验证码进行刷新

 

2. 前段代码

1. 添加验证码标签,在密码的下面,在login.html进行修改

主要改动如下:

2. 在提交的函数中加入验证码的信息 

3. 构造Ajax请求的时候,将验证码也插入到后端,并且判断后端的返回值,当code为-1的时候,表示验证码输入错误. 

 完整的login.html 如下所示:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
添加验证码可以有效地防止恶意攻击者通过暴力破解密码等方式非法登录系统,提高系统的安全性。下面是一个使用 vue.js 实现登录页面添加验证码的示例: 1. 首先在登录页面添加一个验证码输入框和一个验证图片,可以使用第三方的验证码库,如 `vue-verify-pop`。 ```html <template> <div class="login"> <input type="text" placeholder="请输入用户名" v-model="username"> <input type="password" placeholder="请输入密码" v-model="password"> <input type="text" placeholder="请输入验证码" v-model="captcha"> <img :src="captchaUrl" @click="refreshCaptcha"> <button @click="login">登录</button> </div> </template> ``` 2. 在 `data` 中定义 `captchaUrl` 和 `captcha` 变量,并在 `created` 生命周期中调用 `refreshCaptcha` 方法获取验证图片。 ```javascript <script> import VerifyPop from 'vue-verify-pop' export default { name: 'Login', components: { VerifyPop }, data() { return { username: '', password: '', captchaUrl: '', captcha: '' } }, created() { this.refreshCaptcha() }, methods: { refreshCaptcha() { this.captchaUrl = '/api/captcha?rand=' + Math.random() }, login() { // TODO: 验证验证码是否正确,如果正确则发送登录请求;否则提示用户重新输入验证码。 } } } </script> ``` 3. 在 `login` 方法中验证验证码是否正确,可以通过发送请求到后端验证,如果验证码正确则发送登录请求;否则提示用户重新输入验证码。 ```javascript login() { if (this.captcha === '') { alert('请输入验证码') return } axios.post('/api/captcha/verify', { captcha: this.captcha }).then(response => { if (response.data.result === 'success') { // TODO: 发送登录请求 } else { alert('验证码错误,请重新输入') this.refreshCaptcha() } }).catch(error => { console.log(error) }) } ``` 4. 在后端实现验证码的生成和验证,可以使用第三方库,如 `captcha`。 ```python from flask import Flask, request, make_response from flask_cors import CORS from captcha.image import ImageCaptcha app = Flask(__name__) CORS(app) captcha = ImageCaptcha(width=120, height=40) @app.route('/api/captcha') def generate_captcha(): text = '1234' # 随机生成验证码 image = captcha.generate(text) response = make_response(image.getvalue()) response.headers['Content-Type'] = 'image/png' return response @app.route('/api/captcha/verify', methods=['POST']) def verify_captcha(): data = request.get_json() captcha_text = data.get('captcha') if captcha_text == '1234': # 验证验证码是否正确 return {'result': 'success'} else: return {'result': 'fail'} if __name__ == '__main__': app.run(debug=True) ``` 以上就是一个简单的使用 vue.js 实现登录页面添加验证码的示例。当然,以上示例只是提供一个思路,具体实现可以根据自己的需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈士奇的奥利奥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值