技术博客-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,表示此用户被激活;

  • 跳转到首页

原文地址:https://www.cnblogs.com/NAG2020/p/12893806.html