Django实现注册,往邮箱发送验证链接
由于最近要做个平台,在GitHub上下载了一个系统框架,想着为了安全,实现注册时往一个邮箱发送注册信息,由管理员来确认是否同意其注册。
感谢博主:https://blog.csdn.net/geek_xiong/article/details/90324013
大致就是参考了上面的博主的文章
首先解释一下怎么激活的,就是在user表中,加一个属性is_active,一开始注册时此属性的值为0,同时发送消息到邮箱,然后点击激活,使此属性的值变为1,登录的时候会判断,如果is_active的值为1则允许登录,否则不行
1.在系统的全局settings.py中配置邮箱的配置
所有代码希望还是自己敲一遍,加深印象,大致如下

2.设置邮箱的授权码
就是上面的配置的EMAIL_HOST_PASSWORD,也可以写成自己的邮箱密码,总归是不安全,希望还是设置一下邮箱授权码,我的是163的,具体步骤如下


由于我的已经设置过了所以是重置授权码
3.设置models,即建立一个表

4.写生成随机验证码的函数
第三步建立的表的code属性就是存储这个生成随机验证码函数生成的验证码,代码如下

5.写发送到邮箱信息的函数
这个函数同时带着保存信息到一开始在model中建立的表中的功能,代码如下

下面时注册函数中的设置

6.激活函数,即把is_active的值从0变为1的函数

7.url的配置如下

调用步骤:在注册函数中,同时调用上面写的send_register_email函数,即发送信息到邮箱的函数,然后此函数会调用models中创建的表,初始化一个用例,然后保存当前的邮箱及注册码,同时会发送一个链接到指定邮箱,链接是上面第七步的url配置链接,由ActiveUserView.as_view(),会调用第六步的激活函数也是激活类,然后把user的对应邮箱的用户的is_active的值改为1,即实现了邮箱验证
此前还实现了倒计时,就是点击注册后,会有个倒计时5秒的提示,如下

就是注册函数中返回到这个注册成功的页面,然后5秒后跳转到登录界面,代码如下

Django实现注册,往邮箱发送验证链接的更多相关文章
- SpringBoot中快速实现邮箱发送
前言 在许多企业级项目中,需要用到邮件发送的功能,如: 注册用户时需要邮箱发送验证 用户生日时发送邮件通知祝贺 发送邮件给用户等 创建工程导入依赖 <!-- 邮箱发送依赖 --> < ...
- Java实现邮箱激活验证2
SendEmail.java [java] view plaincopyprint? package com.app.tools; import java.util.Date; import ja ...
- Java实现发送邮箱验证码/注册验证链接
本文以163邮箱为例 1.准备(邮箱账号,邮箱必须设置POP3/SMTP/IMAP,设置步骤如下:) >>步骤:1 开启授权码服务 >>步骤:2 手机获取验证码 >> ...
- Java实现注册邮箱激活验证
邮件发送servelet实现 package com.xbs.register.main; import java.io.IOException;import java.util.Date;impor ...
- php发送邮箱重置密码链接,并在重置成功后使链接失效 (ThinkPHP5)
/** * 重置密码页,验证链接有效性,页面发送邮件调用sendResetPwdEmail()方法 */ public function resetPwd() { $param = input('') ...
- 用户注册之后,通过网易邮箱服务器(smtp.163.com)发送电子邮箱到注册者邮箱的的确认通知短信.(可根据需求自行调整)
Member 是数据实体,穿过来的也就是当前注册用户的信息. 存储的数据一定要有邮箱信息 private void SendAuthCodeToMember(Member member) ...
- JavaScript正则验证数字、英文、电话号、身份证号、邮箱地址、链接地址等
验证是否为数字:/^[0-9]*$/验证是否为汉字:/^[\u4e00-\u9fa5],{0,}$/验证x-y位的数字:/^\d{x,y}$/验证由26个英文字母组成的字符串:/^[A-Za-z]+$ ...
- django 邮箱发送
在django中提供了邮件接口 QQ邮箱配置 qq邮箱地扯:https://mail.qq.com settings文件 # 邮箱配置 EMAIL_USE_SSL = True EMAIL_HOST ...
- Django+bootstrap+注册登录系统
转自:https://www.cnblogs.com/robindong/p/9610057.html Robin_D 博客园 首页 新随笔 联系 订阅 管理 随笔 - 10 文章 - 0 评论 ...
随机推荐
- mysql快速搭建从库
基于mysqldump快速搭建从库 https://blog.csdn.net/leshami/article/details/44994329 使用xtrbackup克隆从库 https://blo ...
- 二十三种设计模式 python实现
设计模式是什么? 设计模式是经过总结.优化的,对我们经常会碰到的一些编程问题的可重用解决方案.一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码.反之,设计模式更为高级,它是一种必须在特定情 ...
- Java并发分析—volatile
在https://www.cnblogs.com/xyzyj/p/11148497.html中已经说明了在多线程并发的情况下,会出现数据的不一致问题,但归根结底就是一个原因,在宏观上就是线程的执行顺序 ...
- 使用py-faster-rcnn训练自己的数据集
https://www.jianshu.com/p/a672f702e596 本文记录了在ubuntu16.04下使用py-faster-rcnn来训练自己的数据集的大致过程. 在此之前,已经成功配置 ...
- MySQL--基础SQL--DML
1.插入记录 INSERT INTO tablename (fields1, fields2, ..., fieldsn) VALUES (value1, value2, ..., valuen) 例 ...
- $_SESSION $_COOKIE
$_SESSION是临时会话变量,用来储存访问者信息.内容是储存在服务器上面的.比如 $_SESSION["ABC"] = "aaa";那么这个用户访问时,$_ ...
- 在scala命令行中加入类库
在scala命令行中加入scala的类库. scala -toolcp $HOME/.ivy2/cache/org.scalanlp/breeze_2.12/jars/breeze_2.12-0.13 ...
- 吴裕雄--天生自然 JAVA开发学习:流(Stream)、文件(File)和IO
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //使用 BufferedReader 在控制台读取 ...
- 使用flask_sqlalchemy操作mysql的一个测试
示例代码 from flask_sqlalchemy import SQLAlchemy from flask import Flask app=Flask(__name__) app.config[ ...
- java使用ZipOutputStream批量压缩文件,并将文件分别放置不同文件夹压缩
package cn.cnnho.backstage.controller;import java.util.ArrayList; import java.util.List; import java ...