使用QQ邮箱修改密码

news/2024/10/31 3:19:00/

后端

from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework_jwt.authentication import jwt_decode_handler
from rest_framework_jwt.utils import jwt_decode_handlerfrom userapp.ser import *
import jwt
#自己封装的  加密token
from utls.create_token import create_token
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddrimport redis
my_sender = '@qq.com'  # 发件人邮箱账号
my_pass = ''  # 发件人邮箱的授权码
my_user = '@qq.com'  # 收件人邮箱账号,我这边发送给自己class ZhaohuiView(APIView):def post(self,request):#前端要修改的用户名  和  邮箱username = request.data.get('username')emial = request.data.get('emial')if username:#查找user = User.objects.get(username=username)#把这个用户信息  token  加密token = create_token(user)#讲url 拼接  发送道邮箱   邮箱里面点击  url  跳转到 vue页面url = 'http://localhost:8080/emial?'+'token=' +tokenmsg = MIMEText('修改密码链接:{0}'.format(url), 'plain', 'utf-8')msg['From'] = formataddr(["From nicead.top", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号msg['To'] = formataddr(["FK", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号msg['Subject'] = "验证码"  # 邮件的主题,也可以说是标题server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件server.quit()  # 关闭连接return Response({'code':200,'msg':'发送成功'})else:return Response({"code":400,'msg':'参数不完整'})def put(self,request):#前端发送的数据token= request.data.get('token')password = request.data.get('password')#解析jew 拿到  user_iduid = jwt_decode_handler(token)['user_id']#根据id查具体用户user = User.objects.filter(id=uid).first()user.password = passworduser.save()return Response({'code':200,'msg':'修改成功'})

自己utls里封装的create_token

from rest_framework_jwt.settings import api_settings
def create_token(user):#  生成jwt-token  user 对象 ,   查询 结果jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLERjwt_encode_handler = api_settings.JWT_ENCODE_HANDLERpayload = jwt_payload_handler(user)token = jwt_encode_handler(payload)return token

vue

1.首先写个页面把用户名  邮箱发送道后端
2. 点击发送   后端拼接url发送到邮箱   在邮箱里跳转到vue页面
3. 跳转到的页面token:this.$route.query.token获取token  和 密码  发送到后端  后端解析token
4.  uid = jwt_decode_handler(token)['user_id']   #解析出来是一个对象  

http://www.ppmy.cn/news/354514.html

相关文章

修改密码了

(用户名从session获取&#xff0c;然后根据用户名查询对应user信息做验证) 页面构建 复制代码 1 <!DOCTYPE html>2 <html class"x-admin-sm" xmlns:th"http://www.thymeleaf.org">3 <head>4 <meta charset"UTF-8&…

修改密码的流程

一般用户修改密码都是要有一下步骤的。 一丶填写原密码 二丶填写新密码并填写确认密码。 如下图。 当密码都填写完成了之后就可以去判断这些密码然后到数据库去修改了。 第一步判断数据是否填写完整。新密码与确认新密码是否一致。如果不一致那么就无法修改。如下代码 var Yp…

怎么修改SQL的密码?

先修改成一下复杂的密码 &#xff08;大小写复杂一些&#xff09; mysql> set passwordpassword("VIYUviyf-"); 查看相关密码配置地方在哪 mysql> show variables like %password%; 密码长度改成4位 mysql> set global validate_password_length4; 密…

修改密码,更换密码

import java.util.Scanner;public class scduixiang {String account "zsl";String password "123456";public void accountInfo() {System.out.println("账号" account "\t密码&#xff1a;" password);}public static void mai…

用户修改密码

用户-修改密码-持久层 1.1 规划需要执行的SQL语句 用户修改密码时需要执行的SQL语句大致是&#xff1a; update t_user set password ?,modified_user?,modified_time? where uid?在执行修改密码之前&#xff0c;还应检查用户数据是否存在、并检查用户数据是否被标记为…

WiFi怎么改密码

WiFi 密码太简单容易被别人破解&#xff0c;如果被别人蹭网了不仅可能导致网速变慢&#xff0c;还有可能导致个人信息泄露&#xff0c;所以要将网络密码修改的复杂一点比较安全。WiFi 怎么改密码&#xff1f;路由器的管理密码又该怎么修改&#xff1f;我们怎么设置可以杜绝别人…

修改密码 passwd

一、命令详解 1.命令说明 passwd命令用于更改设置用户密码。本质上&#xff0c;它将自己初始化为使用Linux PAM的“passwd”服务&#xff0c;并利用配置的密码模块进行身份验证&#xff0c;然后更新用户的密码。 passwd命令用于设置用户的认证信息&#xff0c;包括用户密码、…

修改密码

Sub Initialize %REM 功能&#xff1a;实现用户修改密码功能&#xff0c;每个用户只能修改自己的用户 %END REM On Error Goto UnknowError Dim session As New NotesSession Dim userDB As NotesDatabase Dim userView As NotesView Dim view As NotesView Dim userDc As…