基于Django-Rest框架的用户注册

drf-registration的Python项目详细描述


Django Rest框架注册

基于Django-Rest框架的用户注册。在

检查https://drf-registration.readthedocs.io/处的文档

要求

  • Django(大于等于2.0)
  • Django REST框架(>;=3.8.2)
  • Python(>;=3.6)

特点

  • [x] 登记
  • [x] 通过发送到电子邮件的令牌验证/激活帐户
  • [x] 登录使用令牌
  • [x] 注销
  • [x] 用户配置文件
  • [x] 更改密码
  • [x] 重置密码

未来特色

  • [x] 社交网站登录(Facebook、Google)
  • [x] 通过社交登录时设置密码
  • [x] 将用户帐户与社交同步
  • [x] HTML电子邮件配置
  • [x] 测试覆盖率(98%)

基本API设计

假设基本资源是/api/v1/accounts/

雷吉特

帖子:/register/

注册新用户

验证帐户

帖子:/verify/

通过电子邮件验证帐户

登录

后:/login/

使用用户名/电子邮件和密码登录系统

注销

帖子:/logout/

注销系统

剖面图

{4>得到

获取用户配置文件

{

更新用户配置文件

更改密码

放置:/change-password/

更改用户密码

设置密码

放置:/set-password/

使用社交帐户登录时设置用户密码

安装

  • INSTALLED_APPS中添加drf_registration
INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_framework.authtoken',
    'drf_registration',
    ...
]
  • urls.py中包含drf_registration的URL
^{pr2}$

设置

  • AUTHENTICATION_BACKEND设置为支持通过多个自定义字段登录,并选中“登录时停用用户”:
AUTHENTICATION_BACKENDS = [
    'drf_registration.auth.MultiFieldsModelBackend',
]

您可以通过更改DRF_REGISTRATION对象中的LOGIN_USERNAME_FIELDS来更新登录用户名字段。默认为['username, email,]。在

  • REST_FRAMEWORK配置中设置DEFAULT_AUTHENTICATION_CLASSES
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}

设计设置

DRF_REGISTRATION = {

}

命令行

  • 单元测试
make test

您可以添加ARGS="specific_folder/"或{}来运行特定的测试用例。

  • 运行pylint
make pylint
  • 生成和运行文档本地服务器
make docs

访问位于http://localhost:8080的文档服务器

  • 干净
make clean

测试覆盖率

Test coverage

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
实现接口方法时不允许java@Override   使用BuffereImage加载映像时java高ram使用率   java For循环混乱,为什么不是循环?   java Android网格视图字符串对齐问题   java如何将方法与比较类型的附加功能进行比较?   在Java Swing中放置JSepator后的间隙大小   java如何避免并发访问我的网站中的支付链接   java如何从现有的Unix服务器连接到FTP服务器?   Spring中的java用户相关bean定义   带有scribesjava库的wordpress Woocommerce REST API返回消费者密钥参数缺失错误消息   java我可以自动检测特定设备连接的串行端口吗?   Javafx棋盘游戏   java使用JTextPane显示HTML,支持SVG吗?   SpringBoot如何在java中将映射转换为实体对象?   如何使用java代码对xls文件进行密码保护   Java JPA(EclipseLink)如何在持久化实际实体之前接收下一个生成的值?   Javaservlet启动外部进程