码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 抖音实战~密码找回


    在这里插入图片描述

    文章目录

              • 1. 密码找回流程图
              • 2. 前端源码
              • 3. 后端

    1. 密码找回流程图

    在这里插入图片描述

    2. 前端源码
    			/**
    			 * 密码找回
    			 */
    	updatePassword() {
    				var me = this;
    				var mobile = me.mobile;
    				// 提交前,手机号校验
    				var reg = /^1[0-9]{10,10}$/;
    				if (!mobile || !reg.test(mobile)) {
    					uni.showToast({
    						title: '请输入正确的手机号',
    						icon: 'none'
    					})
    					return
    				}
    
    				if (!this.agree) {
    					uni.showToast({
    						title: '请先同意《隐私及服务协议》',
    						icon: 'none'
    					});
    					return;
    				}
    
    				var serverUrl = app.globalData.serverUrl;
    				// 密码找回
    				var password = me.password;
    
    				if (app.isStrEmpty(password)) {
    					uni.showToast({
    						title: "新密码不能为空",
    						icon: "none"
    					});
    					return;
    				}
    				console.log("forgotPassword")
    				// uni.showLoading()
    				// 调用后端登录注册
    				uni.request({
    					method: "POST",
    					url: serverUrl + "/user/forgotPassword",
    					data: {
    						"mobile": mobile,
    						"smsCode": me.verifyCode,
    						"newPassword": password
    					},
    					success(result) {
    						console.log("result", result)
    						var status = result.data.status;
    						if (status != 200) {
    							uni.showToast({
    								title: result.data.msg,
    								icon: "none",
    								duration: 3000
    							});
    						}
    
    						if (status == 200) {
    							uni.navigateTo({
    								url: '../loginRegist/loginRegist'
    							})
    							uni.showToast({
    								title: result.data.msg,
    								icon: "none",
    								duration: 3000
    							});
    							// 登录成功,跳转登录页,关闭当前页
    						}
    					}
    				});
    			}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    3. 后端
    /**
         * 重置密码
         *
         * @param forgotPasswordBO 手机号 + 验证码+新密码
         */
        @PostMapping("forgotPassword")
        public GraceJSONResult forgotPassword(@Valid @RequestBody ForgotPasswordBO forgotPasswordBO,
                                              HttpServletRequest request) {
            String mobile = forgotPasswordBO.getMobile();
            String code = forgotPasswordBO.getSmsCode();
            String newPassword = forgotPasswordBO.getNewPassword();
    
            // 1. 从redis中获得验证码进行校验是否匹配
            String redisCode = redis.get(MOBILE_SMSCODE + ":" + mobile);
            if (StringUtils.isBlank(redisCode) || !redisCode.equalsIgnoreCase(code)) {
                return GraceJSONResult.errorCustom(ResponseStatusEnum.SMS_CODE_ERROR);
            }
    
            // 2. 查询数据库,判断用户是否存在
            Users user = userService.queryMobileIsExist(mobile);
            if (user == null) {
                return GraceJSONResult.errorCustom(ResponseStatusEnum.ACCOUNT_NOT_EXIST);
            }
            this.userService.forgotPassword(mobile, newPassword);
            //重置密码成功,将验证码删除
            redis.del(MOBILE_SMSCODE + ":" + mobile);
            return GraceJSONResult.ok(ResponseStatusEnum.RESET_PASSWORD_SUCCESS);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    拦截器放过

    在这里插入图片描述

  • 相关阅读:
    [活动(深圳)] .NET Love AI 之 .NET Conf China 2023 Party 深圳
    国外创意二维码应用案例:澳大利亚宜家“这不是家”活动,呼吁人们关注和帮助因家庭暴力而无家可归的人!
    【GitHub】Personal Access Token过期导致本地仓库无法直接push到远程
    jemter 简单接口测试使用案例
    详解GuassDB数据库权限命令:GRANT和REVOKE
    智引未来:2024年科技革新引领工业界变革与机遇
    【Python 千题 —— 基础篇】分解数据
    王道3.1 顺序栈以及链式栈
    经典伴读_GOF设计模式_结构型模式
    时间复杂度和空间复杂度(以题目的方式来介绍和分析)
  • 原文地址:https://blog.csdn.net/weixin_40816738/article/details/125431889
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号