DRF实战:美多商城后台项目的JWT单点登录与配置

需积分: 9 6 下载量 177 浏览量 更新于2024-08-26 1 收藏 65KB MD 举报
在这个名为"美多商城后台项目"的Python项目中,主要涉及了两个核心部分:项目初始化和JWT单点登录功能的实现。该项目旨在作为Django Rest Framework(DRF)的练手项目,展示了如何构建一个具备跨域访问控制和用户身份验证的管理系统。 ### 项目初始化 1. **创建子应用**: - 使用`python3 ../manage.py startapp meiduo_admin`命令创建一个新的子应用,用于存放后台管理相关的代码。 - 在项目的`settings.py`中,通过添加`'apps.meiduo_admin'`到`INSTALLED_APPS`列表中,确保新创建的应用被系统识别。 2. **配置URLs**: - 在`meiduo_admin/urls.py`中,定义子应用的URL模式,并将其通过`re_path`包含在主项目的URL配置中,如`re_path(r'^meiduo_admin/', include('apps.meiduo_admin.urls'))`,使得管理界面可以通过指定的路径访问。 3. **跨域访问**: - 修改`dev.py`文件中的`CORS_ORIGIN_WHITELIST`,设置允许的跨域请求白名单,包括本地开发环境的多个域名,便于前端与后端之间的通信。 4. **部署静态资源**: - 将`meiduo_mall_admin`目录下的静态文件部署到`meiduo_admin/dist`目录,并通过`python -m http.server 8081`启动一个简单的HTTP服务器,提供静态文件服务。 ### JWT单点登录 2.1 **安装拓展组件**: - 安装`djangorestframework-jwt`库,这包含了JWT(JSON Web Tokens)认证功能,用于实现安全的身份验证。 2.2 **配置认证后端**: - 在`REST_FRAMEWORK`配置中,添加`JSONWebTokenAuthentication`,它会负责处理JWT令牌的验证,同时保留其他认证方式(如SessionAuthentication和BasicAuthentication),以提供多重选择。 2.3 **JWT参数设置**: - 配置JWT_AUTH,例如设置JWT的有效期(JWT_EXPIRATION_DELTA),这里设定为10天,以确保令牌的生命周期管理。 这个项目不仅涵盖了基本的Django应用架构设置,还引入了JWT技术来提升后端安全性。通过这个实践项目,开发者可以加深对DRF框架的理解,以及在实际场景中处理跨域请求和用户身份验证的能力。