技术博客-2 DRF用户权限以及邮箱验证
技术博客
DRF用户权限以及邮箱验证
1.最终效果
用户注册后发送邮件到指定邮箱,
点击http://127.0.0.1:8000/api/user/email/?token=xxx
链接后跳转到服务器对应的restful api处,根据附带的token修改用户的is_active字段,使得用户被激活。
2.实现逻辑
-
利用itsdangerous模块对链接中的用户信息加密,生成加密后的用户信息token;
-
调用Django发送邮件的相关方法,进行发送邮件
-
邮件配置如下例: settings.py中添加: # 默认邮箱配置 EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com' # smtp服务器地址 EMAIL_PORT = 465 # 端口 EMAIL_HOST_USER = 'xxx' # 帐号 EMAIL_HOST_PASSWORD = 'xxx' # QQ邮箱的独立授权码,每个人不一样 EMAIL_FROM = 'xxx' # 收件人看到的发件人,尖括号中的必须与上面的user一致 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
-
-
邮件发送的链接中有一个可变参数,包含着用户id加密后的信息;
-
用户接收到邮件之后,点击链接,跳转到对应的视图类进行处理;
-
负责激活的视图类,解密用户的信息,获取用户id,查询到对应用户(在这个过程会判断被加密的信息是否超时);
-
将对应用户中数据库中用户表中 is_active 字段的值改为1,表示此用户被激活;
-
跳转到首页