使用Python(Django)和Sveltekit的身份验证系统
#python #django #svelte #githubhack23

我建造的

具有Django Backend和Sveltekit Frontend的表现,安全和可靠的基于会话的身份验证系统。它具有通过github操作启用的CI。

类别提交

DIY部署

应用链接

它的实时版本是here

屏幕截图

Image description

Image description

Image description

Image description

Image description

描述

此应用程序使用最小的依赖项(纯django-无REST API框架)来构建安全,性能和可靠(具有100%自动化测试覆盖范围,使用Python最佳统一代码标准实施静态分析),基于python的静态分析)基于会话的rest rest rest API然后由基于Sveltekit的前端应用程序消费。

用户的个人资料图像直接上传到AWS S3(在测试中,我们抛弃了S3并使用Django的InMemoryStorage进行更快的测试)。

还合并了一个自定义密码重置过程,芹菜任务进行了电子邮件发送。

前端具有弹性,因为它大多可以在没有JavaScript的情况下工作。用户会话一直持续到被破坏为止,并且经验给人以水疗和MPA的混合感觉(Rich Haris称为#TransitionAlapps)。

链接到源代码

它通过django-auth-backend

托管在github上

GitHub logo Sirneij / django-auth-backend

带有Sveltekit Frontend的基于Django会话的身份验证系统

django-auth-backend

CI Test coverage

基于Sveltekit Frontend和GitHub Actions的基于DJANGO会话的身份验证系统。

此应用程序使用最小依赖项(纯django-无REST API框架)来构建安全,性能和可靠(具有100%自动化测试覆盖范围,使用Python最佳统一代码标准执行静态分析) - 基于基于Sveltekit的前端应用程序消耗的基于身份验证的REST API。

用户的个人资料图像直接上传到AWS S3(在测试中,我们放弃了S3并使用Django的InMemoryStorage进行更快的测试)。

还合并了一个自定义密码重置过程,芹菜任务进行了电子邮件发送。

在本地运行

  • 要运行应用程序,请克隆:

     git克隆https://github.com/sirneij/django-auth-backend.git 

    您可以,如果需要,请抓住它的frontend counterpart

  • 将目录更改为文件夹,并使用Python 3.9、3.10或3.11(根据三个版本进行测试)创建虚拟环境。然后激活它:

允许许可证

什么

背景(是什么让您决定构建这个特定的应用程序?是什么启发了您?)

几天前,我与我的LinkedIn Connections共享了有关使用Rust(Actix-Web)和Sveltekit构建身份验证系统的series。我的联系之一requested that I make a Django version。我有义务,这里是!

我是如何构建它的(您是如何利用GitHub Action或Github代码?

后端服务是使用django与PostgreSQL数据库,REDIS for Session Storage构建的,而AWS S3用于文件存储。 API是不使用外部REST API框架(例如Django REST framework)构建的。手动处理数据序列化和JSON响应。大多数观点都是异步的。为了进行测试,大量使用了Pytest及其生态系统。 MypyPylint等用于静态分析。 GitHub动作用于自动测试,覆盖范围报告和静态分析。

我学到了很多东西:

  • async关键字编写django视图并在其中处理同步代码
  • 使用已记录的(甚至已记录的)MultiPartParser
  • 使用Mypy,Pylint,Prospector,Pep8,Pyflakes和许多其他工具来设置和实施标准的Python代码样式。
  • 手动编码表单数据,在测试期间创建上传和删除模拟文件
  • 为Django应用程序设置和修复GitHub操作的问题,并使用它们自动测试和分析针对不同Python版本的应用程序

其他资源/信息

此应用程序是this series的Python(Django)版本。将撰写一系列文章来解释其建造方式。提防。